如果它具有此值[]
或具有[<Booking: arab>]
,我如何在python中指定或确定我的对象中的值,
让我们说在我的查询集中,我过滤了我的对象中不存在的值。
这就是我所做的:这个date_select没有数据
>>> x = Booking.objects.filter(date_select='2011-12-3')
>>> print x
[]
>>> if x == None:
... print 'none'
...
>>>
是[]
不等于None?
当我尝试一个有数据的date_select时
>>> x = Booking.objects.filter(date_select='2011-12-2')
>>> print x
[<Booking: arab>, <Booking: arab>, <Booking: vvv>]
>>> if x == None:
... print 'none'
...
>>>
我只是想确定x是否有数据...... 谁能让我对我的案子有所了解?
提前致谢
答案 0 :(得分:3)
不,[]
不等于None
。 []
是一个空列表 - 一个没有内容但仍然存在的列表,可以有一些元素。 None
是一个表示“无”的值 - 当您找到None
值时,会显示类似“此变量没有相关内容”的内容。由于空列表可以是相关内容 - 例如,空列表可以是列表的初始状态,该列表将随时间累积元素 - 然后假设[] == None
没有任何意义。
False
效果}},if
等。如果你想在列表不有某些内容时执行某些内容,只需否定它:
while
BTW,一个问题:你习惯用Lisp编程吗?这是唯一一种空列表等同于“无类型”的语言(在本例中为if not x:
print 'empty list (is not None)'
)。
答案 1 :(得分:3)
如果您想知道您的查询集是否返回了任何结果,请调用exists
方法。
x = Booking.objects.filter(date_select='2011-12-3')
if x.exists():
# There are some results from this query set
如果您想知道有多少项,可以使用count
x = Booking.objects.filter(date_select='2011-12-3')
print x.count()
答案 2 :(得分:2)
你只需要
if queryset:
print 'not empty'