【问题标题】:Expected a `Response`, `HttpResponse` or `HttpStreamingResponse` to be returned from the view, but received a `<class 'NoneType'>` [duplicate]期望从视图返回一个`Response`、`HttpResponse`或`HttpStreamingResponse`,但收到了`<class 'NoneType'>` [重复]
【发布时间】:2019-05-31 08:05:09
【问题描述】:

models.py

class Wishlist(models.Model):
    home = models.ForeignKey(Home, on_delete=models.CASCADE, blank=False, null=False)
    user = models.ForeignKey(User, on_delete=models.CASCADE, blank=False, null=False)

    def __str__(self):
        return "{} - {}".format(self.user.username, self.home.address)

    class Meta:
        ordering = ('user',)

urls.py

urlpatterns = [
    path(r'wishlist/<int:pk>/', views.WishlistGetUserItems.as_view(), name='wish-user-list'),
]

views.py

class WishlistGetUserItems(APIView):

    def get(self, request, pk):
        wishlist = get_list_or_404(Wishlist, user=pk)
        data = serializers.UserWishlistSerializer(wishlist).data
        Response(data, status=status.HTTP_200_OK)

我也尝试过打印消息,但似乎没有调用该方法

【问题讨论】:

  • 看来你必须return Response(data, status=status.HTTP_200_OK)...!
  • 哦..是的...我没看到

标签: python django django-rest-framework django-views django-errors


【解决方案1】:

您应该在 Response 之前添加 return。

def get(self, request, pk):
    wishlist = get_list_or_404(Wishlist, user=pk)
    data = serializers.UserWishlistSerializer(wishlist).data
    return Response(data, status=status.HTTP_200_OK)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-04
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    • 2022-10-23
    相关资源
    最近更新 更多