是否有 Django 内置函数返回查询集中的项目数,如果对象为 None 则返回 0?
我的期望:
thefunction([obj1, obj2])
>>> 2
obj1 = None
thefunction(obj1)
>>> 0
我尝试了 len() python 函数和 count() Django 方法,但它们不适用于 None 对象(我理解这种行为)。
如果没有这个方法,我就自己写,就是不想重新发明轮子。
编辑:我自己写的,但我仍然想知道(学习)这个函数在 Python 中是否存在 :)
def len_none(iterable):
''' Return the len of an object, and 0 if object is None or empty '''
if iterable: # object exists and is not empty
return len(iterable)
else:
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
