【问题标题】:ContentNotRenderedError: The response content must be rendered before it can be iterated over. Django RESTContentNotRenderedError:必须先渲染响应内容,然后才能对其进行迭代。 Django 休息
【发布时间】:2023-03-04 20:28:01
【问题描述】:

我收到一个错误:The response content must be rendered before it can be iterated over.

下面这行代码有什么问题..??如果有人能弄清楚我在哪里做错了,那将不胜感激。
非常感谢您。

序列化器.py


class GlobalShopSearchList(ListAPIView):
   serializer_class = GlobalSearchSerializer

   def get_queryset(self):
        try:
            query = self.request.GET.get('q', None)
            print('query', query)

            if query:
                snippets = ShopOwnerAddress.objects.filter(
                        Q(user_id__name__iexact=query)|
                        Q(user_id__mobile_number__iexact=query)|
                        Q(address_line1__iexact=query)
                    ).distinct()

                return Response({'message': 'data retrieved successfully!', 'data':snippets}, status=200)

            else:
                # some logic....

        except KeyError:
            # some logic....

【问题讨论】:

    标签: python django django-rest-framework


    【解决方案1】:

    get_queryset 应该返回查询集,而不是 响应

    试试这个方法:

    class GlobalShopSearchList(ListAPIView):
        serializer_class = GlobalSearchSerializer
        queryset = ShopOwnerAddress.objects.all()
    
        def get_queryset(self):
            queryset = super().get_queryset()
    
            query = self.request.GET.get('q')
            print('query', query)
    
            if query:
                queryset = queryset.filter(
                        Q(user_id__name__iexact=query)|
                        Q(user_id__mobile_number__iexact=query)|
                        Q(address_line1__iexact=query)
                    ).distinct()
    
            return queryset
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-23
      • 2014-01-03
      • 1970-01-01
      • 2017-08-28
      • 2019-12-28
      • 2021-03-15
      • 2018-02-20
      相关资源
      最近更新 更多