在queryset django REST框架

时间:2018-01-21 07:26:26

标签: python django django-rest-framework django-rest-viewsets

问题:

我收到这样的错误:

  

回溯:

     

文件   " /usr/local/lib/python2.7/dist-packages/django/core/handlers/exception.py"   在内心     41. response = get_response(request)

     

文件   " /usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py"   在_get_response中     187. response = self.process_exception_by_middleware(e,request)

     

文件   " /usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py"   在_get_response中     185. response = wrapped_callback(request,* callback_args,** callback_kwargs)

     

文件   " /usr/local/lib/python2.7/dist-packages/django/views/decorators/csrf.py"   在wrapped_view中     58. return view_func(* args,** kwargs)

     

文件   " /usr/local/lib/python2.7/dist-packages/rest_framework/viewsets.py"在   视图     87. return self.dispatch(request,* args,** kwargs)

     

File" /usr/local/lib/python2.7/dist-packages/rest_framework/views.py"   在发货     474. response = self.handle_exception(exc)

     

File" /usr/local/lib/python2.7/dist-packages/rest_framework/views.py"   在handle_exception中     434. self.raise_uncaught_exception(exc)

     

File" /usr/local/lib/python2.7/dist-packages/rest_framework/views.py"   在发货     471. response = handler(request,* args,** kwargs)

     

File" /usr/local/lib/python2.7/dist-packages/rest_framework/mixins.py"   在列表中     42. page = self.paginate_queryset(queryset)

     

文件   " /usr/local/lib/python2.7/dist-packages/rest_framework/generics.py"在   paginate_queryset     172. return self.paginator.paginate_queryset(queryset,self.request,view = self)

     

文件   " /usr/local/lib/python2.7/dist-packages/rest_framework/pagination.py"   在paginate_queryset中     311. self.count = _get_count(queryset)

     

文件   " /usr/local/lib/python2.7/dist-packages/rest_framework/pagination.py"   在_get_count中     54. return len(queryset)

     

异常类型:/ api / userprofiles / Exception值的TypeError:   对象类型' NoneType'没有len()

我想做什么:

我只是希望人们在连接到 api 时获取自己的个人资料,因此我认为如果使用UserProfile.objects.all会更好,而不是应用UserProfile.objects.get(user=request.user) }。

但正如你可以看到它不起作用,也许是因为pagination有一些问题,因为它试图获得len(),但它获得的对象是{{ 1}}虽然我在提取之后打印了查询集,以确定它是否真的是NoneType,但它不是。

这是 UserProfileViewSet

NoneType

1 个答案:

答案 0 :(得分:0)

答案(几乎立即得到)

好吧,当我使用UserProfile.objects.get(user=self.request.user)时,我得到了一个对象,而我需要得到的是 queryset

因此将查询集更改为queryset = UserProfile.objects.filter(user=self.request.user)