如何将空查询集指定为非空查询集: [ ] 转换为 [<对象: hi>]
我遇到了一个问题,就是怎么判断一个对象是否为空……
这是我的代码:
这个值没有数据
>>> x = Booking.objects.filter(date_select='2011-12-3')
>>> print x
[]
>>> if x == None:
... print 'none'
...
>>>
这个有数据:
>>> x = Booking.objects.filter(date_select='2011-12-2')
>>> print x
[<Booking: arab>, <Booking: arab>, <Booking: vvv>]
>>> if x == None:
... print 'none'
...
>>>
我从之前的问题中学到,[]
和 None
是不一样的……
这是我想在代码中应用的算法:
if x has an empty queryset
print empy
else
print data
有没有人能帮我解决这个问题?谢谢……
3 个回答
0
尝试一下
x = Booking.objects.filter(date_select='2011-12-2')
if x.count() == 0:
print "empty"
2
这个应该可以工作
if not x:
print "Empty"
else:
print data`
9
使用 exists()
如果查询结果中有数据,就返回True;如果没有数据,就返回False。这个方法会尽量以最简单和最快的方式来执行查询,但实际上执行的查询几乎是一样的。这意味着调用QuerySet.exists()比使用bool(some_query_set)要快,但差别并不大。
if my_queryset.exists():
print "QuerySet has Data"
else:
print "QuerySet is empty"