首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在ModelViewSet中覆盖get_queryset时找不到详细信息

可能是由于以下几个原因导致的:

  1. 未正确继承ModelViewSet类:确保你的视图类正确继承了ModelViewSet类,这是Django REST Framework提供的视图类之一,用于处理模型的CRUD操作。
  2. 未正确设置queryset属性:在覆盖get_queryset方法之前,你需要先设置queryset属性,它定义了视图中要操作的模型实例集合。例如,你可以在视图类中添加以下代码来设置queryset属性:
代码语言:txt
复制
class YourViewSet(viewsets.ModelViewSet):
    queryset = YourModel.objects.all()
  1. 未正确调用父类的get_queryset方法:在覆盖get_queryset方法时,确保你在方法中调用了父类的get_queryset方法,以获取默认的查询集。然后,你可以对查询集进行进一步的过滤或排序。例如:
代码语言:txt
复制
class YourViewSet(viewsets.ModelViewSet):
    queryset = YourModel.objects.all()

    def get_queryset(self):
        queryset = super().get_queryset()
        # 进一步过滤或排序查询集
        return queryset.filter(some_field=some_value)
  1. 未正确设置serializer_class属性:如果你在视图中使用了序列化器来处理数据的序列化和反序列化,确保你正确设置了serializer_class属性。例如:
代码语言:txt
复制
class YourViewSet(viewsets.ModelViewSet):
    queryset = YourModel.objects.all()
    serializer_class = YourSerializer

以上是一些可能导致在ModelViewSet中覆盖get_queryset时找不到详细信息的常见原因。如果问题仍然存在,可以进一步检查代码逻辑、调试和查看错误日志来定位问题所在。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

django优雅的实现软删除,支持Admin和DRF的软删除

自带的Admin 既然是超级管理后台,那么就允许操作任何数据,包括已经软删除的,而不是列表找不到软删除的数据。 后台执行删除操作的时候,实际上是对数据进行软删除。...简而言之: drf找不到删除的数据,admin需要全部数据 drf和admin删除数据都是软删除 解决方案 DRF Django Manager 赋予了 Django的模型(Model)操作数据库的能力...其实你项目中无时不刻不在使用Manager,还记得objects吗?也就是如:Book.objects.all()的objects。有没有想过它到底是什么?...即: drf找不到删除的数据 drf执行删除是软删除 Admin 首先再刚刚代码基础上,我们启用Admin,进入后台看看效果。...由于我们已经模型层通过Manager直接改变了最初的数据过滤后的样子,这里怎么重写也是无事于补的。 于是我在想,那就在定义一个模型管理器,Admin中使用这个管理器不就好了?

2.2K40

Django REST Framework-如何使用视图集(三)

例如, BookViewSet ,我们可以定制 create() 方法,以便在创建新书籍自动将当前用户设置为书籍的作者:class BookViewSet(viewsets.ModelViewSet...我们 BookViewSet 重写了 perform_create() 方法,该方法会在创建新书籍被调用。...另一个例子是定制 list() 方法,以便在获取书籍列表只返回当前用户的书籍:class BookViewSet(viewsets.ModelViewSet): serializer_class...(author=user)在这个例子,我们 BookViewSet 重写了 get_queryset() 方法,该方法会在获取书籍列表被调用。...ViewSet: 不提供任何操作,需要手动子类定义操作方法。视图集类型的选择取决于 API 的需求和开发人员的编写习惯。

61031
  • Django REST framework+Vue 打造生鲜超市(八) 九、个人中心功能开发

    retrieve: 获取商品详情 ''' (4)Description 添加字段的描述有三种方式: model的字段中加 serializer的字段加 filter也可以加...会员中心页面,想要获取个人信息,只需UserViewset多继承一个类:mixins.RetrieveModelMixin  (1)用户详情的序列化 users/serializers.py class...: #只能查看当前登录用户的收藏,不会获取所有用户的收藏 return UserFav.objects.filter(user=self.request.user)  会员中心可以看到已收藏的商品以及详细信息..., "address", "signer_name", "add_time", "signer_mobile") (2)user_operation/views.py 如果要实现增删改查功能,只要继承ModelViewSet...就可以了 class AddressViewset(viewsets.ModelViewSet): """ 收货地址管理 list: 获取收货地址 create

    96080

    九、个人中心功能开发

    retrieve: 获取商品详情 ''' (4)Description 添加字段的描述有三种方式: model的字段中加 serializer的字段加 filter也可以加...9.2.动态设置serializer和permission获取用户信息  用户个人信息修改,因为手机号是验证过的,不能随便改 会员中心页面,想要获取个人信息,只需UserViewset多继承一个类...: #只能查看当前登录用户的收藏,不会获取所有用户的收藏 return UserFav.objects.filter(user=self.request.user)  会员中心可以看到已收藏的商品以及详细信息..., "address", "signer_name", "add_time", "signer_mobile") (2)user_operation/views.py 如果要实现增删改查功能,只要继承ModelViewSet...就可以了 class AddressViewset(viewsets.ModelViewSet): """ 收货地址管理 list: 获取收货地址 create

    88710

    (项目)生鲜超市(八)

    可以该文档做交互和测试,文档可以生成js,shell和python代码段,可以拿来直接使用。 ?   ...添加注释,每个接口的注释按照ViewSet的格式进行添加注释,比如GoodsListViewSet: 1 class GoodsListViewSet(mixins.ListModelMixin,...2、个人信息修改   首先在users/serialziers.py添加用户详细信息的序列化字段: 1 class UserDetailSerializer(serializers.ModelSerializer...5、用户收货地址   serializers.py对收货地址所需的字段进行序列化: 1 class AddressSerializer(serializers.ModelSerializer): 2...编写收货地址的接口,这里直接继承ModelViewSet即可,它将增删改查全部集中了一起: 1 class AddressViewSet(viewsets.ModelViewSet): 2

    64420

    DRF视图集

    DRF视图集 我们在三级视图中,由于获取所有数据和获取一条数据都是使用GET请求,而二级视图(三级视图)只允许有一个get方法,因此我们两个类中进行了设计,并且这样刚好将路由分开。...'retrieve'})), ] GenericViewSet GenericViewSet继承自GenericAPIView,作用也与GenericAPIVIew类似,提供了get_object、get_queryset...GenericAPIView,没有提供任何动作action方法,需要我们自己覆盖该类并混合所需的混合类,或者明确定义操作实现action方法。...ModelViewSet用起来就显得非常方便了,我们不需要实现各种方法了,只需要重写属性,然后配置路由即可。..., BookModelViewSet.as_view({'get': 'retrieve', 'put': 'update', 'delete': 'destroy'})), # 删改查路由 ] 只有ModelViewSet

    92110

    DRF终极封装ViewSet和Router附教程PDF源码

    DRF官方教程的学习过程,一个很明显的感受是框架在不断地进行封装,我们自己写框架/工具/脚本/平台也可以模仿模仿,先完成底层代码,再做多层封装,让使用者很容易就上手操作。...ViewSets 先看看之前在给User模型创建Endpoint,我们新增的2个视图: class UserList(generics.ListAPIView): queryset = User.objects.all...default, but does include the base set of generic view behavior, such as the `get_object` and `get_queryset...ModelViewSet 再使用ModelViewSet把SnippetList、SnippetDetail和SnippetHighlight视图合并成一个SnippetViewSet: from rest_framework.decorators...而且DefaultRouter提供了API根目录的Endpoint,我们甚至可以把views.py的api_root也删了。

    86320

    DRF二级视图GenericAPIView

    通常,您必须设置此属性或覆盖get_queryset()方法。如果您要覆盖视图方法,请务必调用get_queryset()而不是直接访问此属性。...分页 以下属性用于与列表视图一起使用时控制分页。 pagination_class 分页列表结果应使用的分页类。...方法 列表视图与详情视图通用 get_queryset(self) 返回视图使用的查询集,是列表视图与详情视图获取数据的基础,默认返回queryset属性,可以重写,例如: def get_queryset...视图中可以调用该方法获取详情信息的模型类对象。 若详情访问的模型类对象不存在,会返回404。...删改查视图 该视图将包含删除一条数据,修改一条数据以及获取一条数据的详细信息这三个功能,对应的HTTP请求方法分别是DELETE,PUT和GET。它们会使用同样的URL。

    68710

    RESTful源码笔记之RESTful Framework的APIview, Viewset总结分析

    return self.list(request, *args, **kwargs) 在这个例子,继承了mixins的ListModelMixin,get( )方法,调用了它的list()方法,...除此之外,可以重载get_queryset(),这样就不必设置'queryset=*',这样就变得更加灵活,可以进行完全的自定义。...两者的存在一个即可,通过这个,返回,不必去指定某个serilizer 设置过滤器模板:filter_backends 设置分页模板:pagination_class 加入 lookup_field=...它们的功能在于获取某一个实例,指定传进来的后缀是什么。   ...viewset,还提供了两个以及与mixins绑定好的ViewSet,当然,这两个ViewSet完全可以自己实现: class ReadOnlyModelViewSet(mixins.RetrieveModelMixin

    1K10

    django 1.8 官方文档翻译: 2-5-6 多数据库

    合法的hints 的详细信息在下文给出。 如果没有建议,则返回None。...当保存在statement 2发生,p已经具有一个主键,Django 将尝试新的数据库上使用该主键。...然而,如果p 的主键second数据库上已经使用second 数据库的已经存在的对象将在p保存覆盖。 你可以用两种方法避免这种情况。首先,你可以清除实例的主键。...多数据库上使用get_queryset() 如果你正在覆盖你的管理器上的get_queryset(),请确保在其父类上调用方法(使用super())或者正确处理管理器上的_db属性(一个包含将要使用的数据库名称的字符串...(包括不是存储同一个数据库的模型)。

    1.5K20

    DjangoRESTframework(补充)

    () serializer_class = BookInfoSerializer queryset 指明该视图查询数据使用的查询集 serializer_class 指明该视图进行序列化或反序列化时使用的序列化器...(): raise serializers.ValidationError("图书不是关于Django的") return value 2) validate 序列化器需要同时对多个字段进行比较验证...url 的参数关键字名称,默认为 look_field相同 提供的方法: 列表视图与详情视图通用: get_queryset(self) 返回视图使用的查询集,是列表视图与详情视图获取数据的基础...注意,提供序列化器对象的时候,REST framework会向对象的context属性补充三个数据:request、format、view,这三个数据对象可以定义序列化器使用。...ViewSet,没有提供任何动作action方法,需要我们自己实现action方法。

    2.2K30

    Django来敲门~第一部分【9.使用Django内置视图处理对象简化开发】

    对于展示问题列表的首页,继承了generic.ListView内置类,通过template_name指定了HTML视图,通过context_object_name指定了保存数据的变量,get_queryset...()函数定义了数据的查询方式 问题详细信息页面和问题解决方案的结果展示页面,继承了generic.DetailView内置类,通过model指定了展示的数据的类型,template_name指定了...DetailView和ResultView的要查询的数据,同样也是通过主键编号进行查询的,默认的变量名称是pk,所以路由中要进行如下的修改配置,才可以正常使用 改造polls/urls.py路由模块...我们可以源代码,看到各种操作的一些信息,官方注释用于使用对象数据来渲染详细信息页面的视图对象,继承的父类,也定义了各种属性字段用于控制单个对象数据的展示操作 以上两个视图类,都间接继承了View...从基础文件view.py,我们可以看到,各种视图模板的基础处理操作和视图类型的封装都有了简洁的定义,我们需要做的就是项目中,继承这些Django已经封装好的对象,快捷的完成项目的开发。

    89730
    领券