1

问题 :

我收到这样的错误:

追溯:

内部 41 中的文件“/usr/local/lib/python2.7/dist-packages/django/core/handlers/exception.py”。 response = get_response(request)

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

_get_response 185 中的文件“/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py”。 response = Wrapped_callback(request, *callback_args, **callback_kwargs)

Wrapped_view 中的文件“/usr/local/lib/python2.7/dist-packages/django/views/decorators/csrf.py” 58. return view_func(*args, **kwargs)

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

调度 474 中的文件“/usr/local/lib/python2.7/dist-packages/rest_framework/views.py”。响应 = self.handle_exception(exc)

handle_exception 434 中的文件“/usr/local/lib/python2.7/dist-packages/rest_framework/views.py”。self.raise_uncaught_exception(exc)

调度 471 中的文件“/usr/local/lib/python2.7/dist-packages/rest_framework/views.py”。 response = handler(request, *args, **kwargs)

列表 42 中的文件“/usr/local/lib/python2.7/dist-packages/rest_framework/mixins.py”。 page = self.paginate_queryset(queryset)

paginate_queryset 172 中的文件“/usr/local/lib/python2.7/dist-packages/rest_framework/generics.py”。 return self.paginator.paginate_queryset(queryset, self.request, view=self)

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

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

异常类型:/api/userprofiles/ 处的 TypeError 异常值:“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)
4

1 回答 1

0

回答(几乎立即得到它)

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

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

于 2018-01-21T07:30:05.187 回答