【问题标题】:Django QuerySet Count() Returns NoneTypeDjango QuerySet Count() 返回 NoneType
【发布时间】:2018-02-09 01:58:37
【问题描述】:

在视图中,我有以下sn-p:

    try:
        count = MembershipPurchaseHistory.objects.filter(user=self.request.user).count()
    except:
        count = 0

但不知何故,我收到一条错误消息,提示 count 具有 NoneType 值? 这怎么可能?

编辑: 我写了这样的东西:

if count > 0:
    # do something

回溯错误:

'>' not supported between instances of 'NoneType' and 'int'

编辑 2: 对不起。我发现了错误。它指的是一个已安装的库,它将一个变量(默认为无)与一个 int 进行比较。我省略了变量,这发生了。

【问题讨论】:

  • 可以添加完整的回溯吗?
  • @neverwalkaloner 检查更新的问题。
  • 这应该是不可能的。请向我们展示整个代码;也许错误在其他地方。
  • @JohnGordon @ neverwalkaloner 对不起。我发现了错误。它指的是一个已安装的库,它将一个变量(默认为无)与一个 int 进行比较。我省略了变量,这发生了。

标签: django


【解决方案1】:
from django.db.models import Count
count = MembershipPurchaseHistory.objects.filter(user=self.request.user).aggregate(Count('id'))['id__count']

你可以试试这个方法,这个answer中描述的性能更好

【讨论】:

    猜你喜欢
    • 2018-06-30
    • 2018-06-05
    • 1970-01-01
    • 2010-10-07
    • 2022-10-02
    • 2015-04-15
    • 2019-07-18
    • 1970-01-01
    • 2012-01-25
    相关资源
    最近更新 更多