Django:尝试选择随机结果,但get Object没有len()错误

时间:2018-06-30 15:48:23

标签: python django django-rest-framework

我正在构建一个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返回一个查询集,所以我知道它正在获取结果。但是我需要一个(随机)实例。

有人知道我在做什么错吗?

1 个答案:

答案 0 :(得分:3)

期望包含结果的QuerySet。通过使用first(),您将返回结果列表中的一项。

请尝试切片查询集,而不要使用first()

random_ad = Ad.objects.filter(verified=False).order_by('?')[:1]