如果QuerySet为空,则返回字符串

时间:2016-02-03 16:24:24

标签: django django-rest-framework django-queryset

在下面的代码中,如果查询集为空,我想返回一个字符串,其中results字段出现在JSON响应中。

按原样,我收到错误object of type 'Response' has no len()。有谁知道如何在这个实例中返回一个字符串?

谢谢!

class ProductListAPIView(CacheMixin, DefaultsMixin, FiltersMixin,
                         generics.ListAPIView):
    serializer_class = ProductSerializer
    search_fields = ('title', 'owner',)
    ordering_fields = ('created', 'modified', 'list_date_start',)

    def get_queryset(self):
        products = (Product.objects.select_related('owner')
                                   .prefetch_related('buyers'))
        for product in products:
            listuse_status_check.send(sender=product)
        queryset = products.filter(is_listed=True)
        if queryset:
            return queryset
        return RestResponse({'results': 'some string here.'})

1 个答案:

答案 0 :(得分:0)

get_queryset()需要返回一个实际的查询集,因此需要返回名称。

您可能需要覆盖list()方法,如documentation中所述,以便它检查从方法返回的查询集并相应地修改响应。