我确定对象是否为空时有问题... 这是我的代码:
此值没有数据
>>> 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
任何人都可以帮助我吗? 感谢...
答案 0 :(得分:7)
使用exists()
如果QuerySet包含任何结果,则返回True,否则返回False。 这会尝试以最简单,最快速的方式执行查询 可能,但它确实执行几乎相同的查询。这意味着 调用QuerySet.exists()比bool(some_query_set)更快,但不是 在很大程度上。
if my_queryset.exists():
print "QuerySet has Data"
else:
print "QuerySet is empty"
答案 1 :(得分:2)
这应该有效
if not x:
print "Empty"
else:
print data`
答案 2 :(得分:0)
试
x = Booking.objects.filter(date_select='2011-12-2')
if x.count() == 0:
print "empty"