首页
学习
活动
专区
工具
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.3K40

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 的需求和开发人员的编写习惯。

62031
  • 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

    97180

    九、个人中心功能开发

    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

    89410

    (项目)生鲜超市(八)

    可以该文档做交互和测试,文档可以生成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

    65120

    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

    92910

    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也删了。

    86920

    DRF二级视图GenericAPIView

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

    69810

    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

    drf之请求、响应、视图

    提供的关于序列化器使用的属性与方法 属性:serializer_class  指明视图使用的序列化器 方法: get_serializer_class(self) : 当出现一个视图类调用多个序列化器...,那么可以通过条件判断get_serializer_class方法通过返回不同的序列化器类名就可以让视图方法执行不同的序列化器对象了。...注意: 该方法提供序列化器对象的时候,会向序列化器对象的context属性补充三个数据:request、format、view,这三个数据对象可以定义序列化器使用。...**ViewSet,没有提供任何动作action方法,需要我们自己实现action方法。...3.2 action 视图集中,我们可以通过action对象属性来获取当前请求视图集的action动作是哪个。除了默认的方法动作外,还可以添加自定义动作。

    2.1K20
    领券