Python Django:无法解析关键字'';隐藏于“客户”之外;到田野里去。选择是

Python Django:无法解析关键字'';隐藏于“客户”之外;到田野里去。选择是,python,django,Python,Django,我有以下模型: class Task(models.Model) customer = models.ForeignKey('Customer') external_job = models.CharField(max_length=64) created = models.DateTimeField(auto_now_add=True, db_index=True) start = models.DateTimeField(db_index=True)

我有以下模型:

class Task(models.Model)
    customer = models.ForeignKey('Customer')
    external_job = models.CharField(max_length=64)
    created = models.DateTimeField(auto_now_add=True, db_index=True)
    start = models.DateTimeField(db_index=True)
    status = models.IntegerField()
我添加了一个从客户隐藏的列,如下所示:

hidden_from_customer = models.BooleanField(default=True)
然后运行syncdb。该列现在以默认值True反映在数据库中。但当我运行以下查询时:

tasks = Task.objects.filter(status=1, hidden_from_customer=True)
我得到的例外是:

Cannot resolve keyword "hidden_from_customer" into field. Choices are customer, external_job, created, start, status.

我不知道这是怎么回事

我找到了解决办法。在数据库中,我看到有一个额外的列“end”,它没有在模型中定义。这就是为什么我认为Django没有关注新专栏的原因。我在模型中添加了back'end',现在一切正常


奇怪的是,在我添加这个新专栏之前,一切都运行得很好。

您使用的是哪个版本的django?我非常确定FieldError(即FieldError)是模型中字段的一个例外,而不是数据库查询本身。换句话说,这并不是因为表在数据库中不存在,因为它永远不会走那么远。您确定在添加字段后重新加载了模型吗?谢谢大家,但这是模型定义中的错误。请查看我发布的解决方案。我会小心这是一个危险因素,除非您可以通过添加/删除所述列并重新加载模型来完全复制问题。在我所有的Django经验中,Django从来都不关心数据库中存在的一个列,该列没有在模型中定义,并且错误消息不会因为一个额外的列而出现。