Python 在rest_框架上重写get_queryset()
我试图通过重写Python 在rest_框架上重写get_queryset(),python,django-rest-framework,Python,Django Rest Framework,我试图通过重写get-queryset() 但我得到了这个错误: queryset不是None,'未指定base_name参数,并且可能'\ AssertionError:未指定base_name参数,因此无法 自动从视图集中确定名称,因为它没有 一个.queryset属性 以下是我的看法: class TasksViewSet(viewsets.ModelViewSet): def get_queryset(self): return Tasks.objects.f
get-queryset()
但我得到了这个错误:
queryset不是None,'未指定base_name参数,并且可能'\
AssertionError:未指定base_name参数,因此无法
自动从视图集中确定名称,因为它没有
一个.queryset
属性
以下是我的看法:
class TasksViewSet(viewsets.ModelViewSet):
def get_queryset(self):
return Tasks.objects.filter(assigner=self.request.user)
serializer_class = TasksSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
def perfrom_create(self, serializer):
serializer.save(self, assigner=self.request.user.pk)
和我的网址:
router = DefaultRouter()
router.register(r'tasks', views.TasksViewSet)
router.register(r'users', views.UserViewSet)
urlpatterns = [
url(r'^', include(router.urls)),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]
如何解决此问题请发布错误消息的完整堆栈跟踪?因为不清楚代码的哪一部分产生了错误。另外,只需定义
queryset=Tasks.objects
并覆盖.get\u queryset()
。上次我需要它时,它就起作用了。我定义了queryset=Tasks.objects
,它就起作用了。。非常感谢现在我有另一个问题,当没有人登录此错误时,raiseint()参数必须是字符串、类似对象的字节或数字,而不是“AnonymousUser”
然后请提出另一个问题。而(assigner=self.request.user)
在self.request.user
为AnonymousUser
时不起作用,因为默认情况下,AnonymousUser
不是数据库条目。也许能最有效地解决你的问题。。