我正在构建一个Django-Rest API,该API从查询集中返回一个随机对象
querySelector
但是此代码返回 class AdViewSet(viewsets.ReadOnlyModelViewSet):
serializer_class = AdSerializer
queryset = Ad.objects.none()
def get_queryset(self):
if 'verify' in self.request.GET:
# Return random object
random_ad = Ad.objects.filter(verified=False).order_by('?').first()
# return random_ad
return random_ad
return Ad.objects.all().order_by('-pk')
错误。
删除object of type 'Ad' has no len()
命令会使API返回一个查询集,所以我知道它正在获取结果。但是我需要一个(随机)实例。
有人知道我在做什么错吗?
答案 0 :(得分:3)
期望包含结果的QuerySet。通过使用first()
,您将返回结果列表中的一项。
请尝试切片查询集,而不要使用first()
:
random_ad = Ad.objects.filter(verified=False).order_by('?')[:1]