我試圖按照文檔查找跨越「反向」關係的關係,找到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