关于布尔值的Django queryset过滤器不起作用

时间:2012-11-26 05:17:32

标签: django django-models

我有一个模特:

class mymodel(models.Model):
    order_closed = models.BooleanField(default=False)

我将此字段手动添加到我的开发mysqllite数据库中,因为它是已存在的模型/表的新字段。然后我尝试了:

mymodel.objects.filter(order_closed=False) #and with True

及其产生不正确或不可预测的结果。我看到一些提及可能是一个sqllite的东西,但我不确定?模板似乎理解它是真值还是假值,但python代码不是。通过一些例子澄清:

在sqllite中将默认值设置为0后,

{{mymodel.order_closed}}将打印0。但是使用.filter(order_closed = value)仍将返回每条记录。

1 个答案:

答案 0 :(得分:0)

我认为你在犯错SQL时犯了一些错误。如果您的db有一些重要的信息,请使用

south

http://south.aeracode.org/

当您拥有它时,您可以轻松升级/编辑您的数据库。

如果您不想安装新的“插件”,请试试。 1.从DB manualy删除此字段。 2.写:python manage.py sql'app of app'

它将返回应用程序的CREATE TABLE SQL语句。

然后,您可以使用一些CReate命令手动升级数据库。