Python 是否有一个Django函数可以对对象进行计数,即使没有对象?

Python 是否有一个Django函数可以对对象进行计数,即使没有对象?,python,django,Python,Django,是否有Django内置函数返回queryset中的项数,如果对象为无,则返回0 我所期望的是: thefunction([obj1, obj2]) >>> 2 obj1 = None thefunction(obj1) >>> 0 我尝试了len()python函数和count()Django方法,但它们对None对象不起作用(我理解这种行为) 如果没有这样的方法,我会自己写,只是不想重新发明轮子 编辑:我自己写的,但我仍然想知道(学习)这个函数在Pytho

是否有Django内置函数返回queryset中的项数,如果对象为无,则返回0

我所期望的是:

thefunction([obj1, obj2])
>>> 2
obj1 = None
thefunction(obj1)
>>> 0
我尝试了
len()
python函数和
count()
Django方法,但它们对
None
对象不起作用(我理解这种行为)

如果没有这样的方法,我会自己写,只是不想重新发明轮子

编辑:我自己写的,但我仍然想知道(学习)这个函数在Python中是否存在:)


谢谢

你可以自己写:

def my_count(var):
    try:
        return count(var)
    except TypeError:
        return 0

对查询集调用
len
将返回
0
,如果该查询集为空。对于空查询集,查询集不会返回
None
。例如,如果我有
5个
图像:

>>> len(Images.objects.none()) == 0
True
>>> len(Images.objects.all()) == 5
True
我不认为有什么事情可以做,特别是你的要求,但有很多方法来实现它。这里有一个:

>>> one = [1, 2, 3]
>>> two = None
>>> len(one or [])
3
>>> len(two or [])
0

谢谢,我知道如何编写这个函数:)问题只是知道它是否已经存在(避免编写代码中已经存在的函数)。我更新了我的问题,使之更清楚。谢谢。我不相信有任何内置功能。但是,如果您使用的是
MyModel.objects.none()
,则不需要进行检查。确定iterable的一种方法是,
if hasattr(qs,“\uuu iter\uuuu”):return len(qs)
问题是我不会在空的queryset:上调用它(我知道这是一种不寻常的情况)。感谢
len(obj或[])
语法,非常pythonic:)
>>> one = [1, 2, 3]
>>> two = None
>>> len(one or [])
3
>>> len(two or [])
0