gpt4 book ai didi

python - Django:试图选择随机结果,但得到的对象没有 len() 错误

转载 作者:太空宇宙 更新时间:2023-11-04 00:15:31 25 4
gpt4 key购买 nike

我正在构建一个从查询集中返回随机对象的 Django-Rest API

  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() 错误。

删除 .first() 命令会导致 API 返回一个查询集,因此我知道它正在获取结果。但我需要一个(随机)实例。

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

最佳答案

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

不使用 first(),尝试对查询集进行切片:

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

关于python - Django:试图选择随机结果,但得到的对象没有 len() 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51116348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com