首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Django:尝试选择随机结果,但get对象没有len()错误

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

Stack Overflow用户
提问于 2018-06-30 23:48:23
回答 1查看 159关注 0票数 2

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

代码语言:javascript
复制
  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返回一个查询集,所以我知道它正在获得结果。但我需要一个(随机)实例。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-30 23:58:10

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

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

代码语言:javascript
复制
random_ad = Ad.objects.filter(verified=False).order_by('?')[:1]
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51116348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档