我试图按照文档查找跨越“反向”关系的关系,找到here。这里是我的模型代码:Django“跨越关系的查找”错误
class Foo(models.Model):
initiator = models.ForeignKey(User)
date_time = models.DateTimeField()
...
,这里是我的查询代码:
...
now = datetime.now()
users = User.objects.filter(foo__date_time__gte = now)
...
这将导致以下错误:django.core.exceptions.FieldError:无法解析的关键字“富”成领域。选项包括:_message_set,date_joined,电子邮件,FIRST_NAME,组ID,IS_ACTIVE,is_staff,is_superuser,LAST_LOGIN,姓氏,logentry,密码,user_permissions,用户名
但是,如果我改变我的代码,不使用的用户,但而是使用我自己的模型类型Bar,然后按我所期望的那样工作,没有任何错误。示例如下:
class Foo(models.Model):
initiator = models.ForeignKey(Bar)
date_time = models.DateTimeField()
...
...
now = datetime.now()
bars = Bar.objects.filter(foo__date_time__gte = now)
...
任何人都可以向我解释第一个代码使用用户模型作为外键的问题吗?提前致谢!
编辑:我应该说明我的查询代码不是在视图函数中,而是在我使用manage.py命令调用的效用函数中。如果我把查询代码放在视图中,那么一切正常,没有错误!但奇怪的是,第二个代码示例在视图和管理命令场景中都能正常工作。
希望有人比我有更多的Django专业知识可以解释这一点。谢谢!
您是否已将'Foo'定义的应用程序添加到'INSTALLED_APPS'中? –
感谢您的回复Daniel。是的,我的应用程序在INSTALLED_APPS。我编辑了我原来的帖子,以澄清这段代码不在视图函数内,这似乎有所作为,虽然我不太清楚为什么。 – Blade