django querySet count()返回非类型



在视图中,我有以下片段:

    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:对不起。我发现了错误。它指的是安装的LIB,该LIB将变量(默认为none(与INT进行了比较。我省略了变量,这发生了。

from django.db.models import Count
count = MembershipPurchaseHistory.objects.filter(user=self.request.user).aggregate(Count('id'))['id__count']

您可以尝试此方法,如此答案所述,它具有更好的性能

最新更新