这是我的代码
for add in Address.objects.filter(city_id='112'):
print add
if add:
print 'ok,I got something'
else:
print 'nothing found'
当它过滤somrthing时,它将打印:
Address object
ok.Igot something
但是当它没有过滤某些东西时,
print add
没有显示任何内容,也没有打印'nothing found'
我想问一下如何检查Address.objects.filter()获取对象
答案 0 :(得分:3)
在布尔上下文中,如果查询集不为空,则返回True
并且False
未找到任何内容:
address_list = Address.objects.filter(city_id='112')
if address_list:
print 'ok,I got something'
for address in address_list:
print address
else:
print 'nothing found'
如果您在模板中使用queryset,则{% for %} ... {% empty %}模板标记可以为您提供帮助:
<ul>
{% for address in address_list %}
<li>{{ address }}</li>
{% empty %}
<li>Nothing found</li>
{% endfor %}
</ul>
答案 1 :(得分:0)
当Address.objects.filter(city_id='112')
返回一个空数组时,将完全跳过for
循环。你的if
在那个循环中,所以当什么都没有返回时,根本就没有其他代码被击中。