時,我有一個模型文件看起來類似於以下內容:FieldError註釋過的外鍵
class WithDate(models.Model):
addedDate = models.DateTimeField(auto_now_add=True)
modifiedDate = models.DateTimeField(auto_now=True)
class Meta:
abstract = True
class Match(WithDate):
...
class MatchFilter(django_filters.FilterSet):
class Meta:
model = Match
class Notify(WithDate):
matchId = models.ForeignKey(Match)
headline = models.CharField(null=True, blank=True, max_length=10)
每場比賽我試圖得到通知有一個標題記錄的計數。所以我的電話看起來像
matchObjs = Match.objects.annotate(notifies_made=Count('notify__headline__isnull'))
這不斷拋出一個FieldError。我已經簡化了查詢到
matchObjs = Match.objects.annotate(notifies_made=Count('notify'))
我仍然會得到相同的FieldError ......我見過在其他情況下,這項工作(其他文件,其他等問題,如this one),但我不明白爲什麼我得到一個錯誤。
返回的特定錯誤如下:
Cannot resolve keyword 'notify' into field. Choices are: (all fields from Match model)
有沒有人有一個線索,爲什麼我不能得到這個註釋跨表的工作?看到其他的SO問題以及我看到完成的各種Django文檔後,我感到困惑不解。
編輯:我使用Django 1.1.1
編輯2:我已經試過重新命名matchId場只是比賽......我已經消除了WithDate類,添加在addedDate和modifiedDate直進入模型類定義。這些更改都沒有擺脫錯誤消息。
編輯3:一塊重建我的模型文件片之後,我認識亞歷克斯Gaynor的Django的過濾插件的加入是造成問題。我一開始並不認爲這是相關的,但是現在它已經包含了導致錯誤的Match FilterSet類。當我刪除MatchFilter類時,它工作得很好。我試圖通過django過濾器代碼來弄清楚爲什麼會發生這種情況,但如果有其他人有想法,我會非常感興趣!
它與您的問題無關,但在MatchFilter中存在縮進錯誤。 – 2010-03-31 14:44:07
哎呀,文本框傳輸的代碼沒有像我想的那樣乾淨利落。感謝您指出了這一點。現在應該修復! – 2010-03-31 15:00:35