查询集过滤器不起作用

查询集过滤器不起作用

这让我沮丧了一个小时。
我有以下型号:

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"

最佳答案

从你发布的内容来看,一切都如广告所示。如果你从shell中尝试这些东西,你应该得到以下结果。当然,我正在做一些,所以在你复制粘贴之前先阅读。

>>> from myapp.models import Property
>>> Property.objects.all()
[<Property: Property object>,<Property: Property object>,<Property: Property object>,<Property: Property object>,<Property: Property object>,]
>>> Property.objects.filter(sold=False)
[]
>>> Property.objects.filter(sold=True)
[<Property: Property object>,<Property: Property object>,<Property: Property object>,<Property: Property object>,<Property: Property object>,]
>>> Property.objects.create(sold=False, my='other', fields=1)
>>> Property.objects.filter(sold=False)
[<Property: Property object>,]

杰克是对的,在大多数SQL实现中,1的值应该为true。

07-27 23:56