在视图中,我有以下片段:
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']
您可以尝试此方法,如此答案所述,它具有更好的性能