【发布时间】:2011-10-19 11:28:27
【问题描述】:
这让我沮丧了一个小时。
我有以下型号:
sold= models.BooleanField(default=False)
以及如下查看代码:
properties = Property.objects.filter(sold=False).order_by('-created_on');
以及我的 sqlite3 数据库中的以下值:
sqlite> select sold from clients_property;
1
1
1
1
1
以下模板代码确实有效(如隐藏已售商品):
{% if not property.sold %}
有人知道为什么查询集过滤器不起作用或为什么我做错了吗?我试过了:
sold="1"
sold=1
sold="false"
sold=False
sold="False"
【问题讨论】:
-
您是如何将数据插入数据库的?
1的值通常计算为True。所以在我看来,您数据库中的数据已损坏。 -
sold=False 是正确的过滤器,看起来您的数据库中没有任何带有 sold=False 的属性。
-
我用 python 插入了它,变量是 sold=False
-
另外,我通过 SQLite3 shell 手动将整数 0 和 1 更新为整数 0 和 1,并将视图中的过滤器语句更改为 sold='1' 和 sold=1 ,但这些都没有改变结果。
-
叹息。好的。这将成为有史以来最愚蠢的 Stackoverflow 问题之一,但使用 Textmate,我正在编辑另一个视图,而不是通过 web 应用程序查看的视图。一切都很完美,我真的很抱歉浪费了大家的时间。
标签: python django django-models sqlite django-queryset