gpt4 book ai didi

python - 检查 Django 空表对象不工作

转载 作者:行者123 更新时间:2023-11-27 23:25:05 24 4
gpt4 key购买 nike

我有一个 html 页面,我想仅当传入的表对象不为空时才显示搜索栏。但是我的支票不能正常工作。这是代码:

<!-- We'll display the search bar only when the user has access to at least one item, otherwise, hide it. -->
{% if item_info %}
Number of entries: {{ item_info|length }}, nothing? {{item_info}}
<section>
<form method="post" action=".">
{% csrf_token %}
<input type="text" class="search-query span80" id="search" name="search" placeholder="Enter ItemNo to search">
<button type="submit" class="btn">Search</button>
</form>
</section>
{% else %}
No item_info.
{% endif%}

这是我在浏览器上看到的: still enters if branch

item_info 是空白的,我认为它应该去 else 分支,但是,它进入了 if 分支,非常感谢任何帮助!

在 elethan 的回答后编辑:我已经把它打印出来调试了,这是截图: 2nd_img所以,看起来这个 item_info 真的是空的,我没有看到任何 item_info 对象被打印出来。

此外,为了帮助调试,这是我的 View 代码:

def item_info(request):    
iteminfo= ItemInfo.objects.all().filter(Q(some_query)
table = ItemInfoTable(iteminfo)
RequestConfig(request).configure(table)
return render(request, 'item_info.html', {'item_info':table,})

这是我的表格定义:

import django_tables2 as tables  
class ItemInfoTable(tables.Table):
itmno = tables.Column(verbose_name="Item #")
class Meta:
model = ItemInfo
empty_text = "There is no item record."

这是它引用的 ItemInfo 表:

class ItemInfo(models.Model):
itmno = models.CharField(primary_key=True, max_length=11L, db_column='ItmNo', blank=True)
class Meta:
db_table = 'item_info'

最佳答案

如果 item_infoRawQuerySet,请尝试使用 {% if item_info.all %} 而不是 {% if item_info %} RawQuerySet 未定义 __bool__() 方法,因此实例始终被视为 True。请参阅 this section 中的警告文档的一部分,在下面重复,以防万一此链接将来失效:

While a RawQuerySet instance can be iterated over like a normal QuerySet, RawQuerySet doesn’t implement all methods you can use with QuerySet. For example, bool() and len() are not defined in RawQuerySet, and thus all RawQuerySet instances are considered True. The reason these methods are not implemented in RawQuerySet is that implementing them without internal caching would be a performance drawback and adding such caching would be backward incompatible.

关于python - 检查 Django 空表对象不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38963822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com