![](/img/trans.png)
[英]Django REST Framework - return a value from get_queryset?
[英]Django rest framework, should be able to override get_queryset and not define queryset attribute?
我很迷惑。 查看 ViewSet 源代码,看起来我应该无法在视图集中定义查询集,然后只需覆盖 get queryset 函数即可获取我想要的任何查询集。 但我的代码失败并出现此错误:
AssertionError: `base_name` argument not specified, and could not automatically determine the name from the viewset, as it does not have a `.queryset` attribute.
因此,即使我覆盖了 queryset 属性,我仍然需要在开始时将其设置为某个假属性……这是可行的,但是定义查询集然后在一秒钟后覆盖它感觉很奇怪。
class StudyQuestion(viewsets.ReadOnlyModelViewSet):
queryset = Model.objects.all()
serializer_class = ModelSerializer
permission_classes = (permissions.IsAuthenticated, )
def get_queryset(self):
""""""
return Model.objects.order_by('-word__frequency')
一个DRF ModelViewSet使用queryset
导出URL基地。 如果未设置queryset
属性,DRF 会要求您在注册路由器时使用可选的base_name
属性来声明基。
在 DRF 文档中查看此页面:
DRF 路由器正在抱怨,因为它无法自动为视图集生成基本名称:
base_name - 用于创建的 URL 名称的基础。 如果未设置 basename 将根据视图集的 queryset 属性自动生成,如果它有的话。 请注意,如果视图集不包含查询集属性,那么您必须在注册视图集时设置 base_name。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.