Проблема :
Я получаю такую ошибку:
Выслеживать:
Файл "/usr/local/lib/python2.7/dist-packages/django/core/handlers/exception.py" во внутреннем 41. response = get_response (запрос)
Файл "/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 (запрос, * 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)
Файл "/usr/local/lib/python2.7/dist-packages/rest_framework/views.py" в отправке 474. response = self.handle_exception (exc)
Файл "/usr/local/lib/python2.7/dist-packages/rest_framework/views.py" в handle_exception 434. self.raise_uncaught_exception (exc)
Файл "/usr/local/lib/python2.7/dist-packages/rest_framework/views.py" в отправке 471. response = handler (request, * args, ** kwargs)
Файл "/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)
Тип исключения: TypeError в / api / userprofiles / Значение исключения: объект типа NoneType не имеет len ()
Что я пытаюсь сделать:
Я просто хочу, чтобы люди получали свой собственный профиль при подключении к api, поэтому я подумал, что вместо применения UserProfile.objects.all
было бы лучше, если бы я использовал UserProfile.objects.get(user=request.user)
.
Но, как вы хорошо видите, он не работает, возможно, потому что pagination
имеет некоторую проблему, потому что он пытается получить len()
, но объект, который он получает, NoneType
, хотя я распечатал набор запросов сразу после его получения, чтобы чтобы определить, действительно ли это NoneType
, но это не так.
Вот мой UserProfileViewSet:
class UserProfileViewSet(viewsets.ModelViewSet):
"""
This viewset automatically provides `list`, `create`, `retrieve`,
`update` and `destroy` actions.
"""
# queryset = UserProfile.objects.all(user=request.user)
serializer_class = UserProfileSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,
IsOwnerOrReadOnly,)
pagination_class = LimitTenPagination
def get_queryset(self):
try:
queryset = self.request.user.profile.all() # UserProfile.objects.get(user=self.request.user)
print queryset
except:
queryset = None
return queryset # UserProfile.objects.get(user=self.request.user)
@detail_route(renderer_classes=[renderers.JSONRenderer])
def perform_create(self, serializer):
serializer.save(user=self.request.user)