2010-08-18 49 views
2

我是一個引用我的「THROUGH」m2m模型額外字段的問題。我 可以引用鏈接模型(用戶),但不是在 「直通模式」額外的細節(LISTUSER)Django m2m通過模板++中的額外字段引用

我的模型定義--- 用戶模式是建立在用戶模型非接觸。

class joblist(models.Model): 
    userdetail = models.ManyToManyField(User,through='userextra') 

class userextra(models.Model): 
    joblist = models.ForeignKey(joblist) 
    user = models.ForeignKey(User) 
    comments= models.CharField(max_length=16384, blank=True, null=True) 

在我的模板-----

{% for row in joblist %} 
html here 
{% for item in row.userdetail.all %} 
{{item.username}}-"I want to print comments here" 
{% endfor %} 
{% endfor %} 

我用盡{{item.userextra.comments}} {{item.comments}} {{item.douser.comments}}

所以我從「用戶」的模式獲得的細節,但我不是讓 附加字段上userextra模型?

讚賞任何幫助.... ň

回答

0

你在比模板的觀點得到了更多的後空翻潛力。

因此,雖然這是一個不雅的解決方案,但我建議直接在視圖中查詢直通模型,然後使用您返回的內容來適當地臨時註釋工作列行中的項目,以便您可以絕對地,乾淨地,做row.foo.bar或item.baz.boof等,然後將手動註釋的一組結果傳遞給模板。

+0

嗯,不知道你的意思,你能舉個例子嗎? 我已經在視圖中做了一些過濾,但是這並不幫助在模板中顯示它。我不知道如何重新排列Queryset? – Niall 2010-08-18 17:57:13

+0

但是,如果我遍歷模板中的作業列表,回到視圖是......尷尬。 – Bryce 2012-07-13 19:14:31

+0

您在視圖中迭代並註釋,然後在模板中再次迭代 - 您無法從模板返回到視圖中。 – 2012-07-13 20:22:43

1

不知道你是否仍然需要一個答案...我是Python/Django的新手,但我正在尋找相同的東西,當我搜索時,你的問題在谷歌中排名很高,所以我認爲我會回答它其他人正在搜索。

以下是我能找到的結果:除了遍歷row.userdetail.all,請嘗試迭代row.userextra_set.all

{% for row in joblist %} 
html here 
{% for item in row.userextra_set.all %} 
{{ item.user.username }} - {{ item.comments }} 
{% endfor %} 
{% endfor %} 
相關問題