Django m2m通过模板++中的额外字段引用

Django m2m通过模板++中的额外字段引用

问题描述:

我是一个引用我的“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模型?

赞赏任何帮助.... ň

你在比模板的观点得到了更多的后空翻潜力。

因此,虽然这是一个不雅的解决方案,但我建议直接在视图中查询直通模型,然后使用您返回的内容来适当地临时注释工作列行中的项目,以便您可以绝对地,干净地,做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

不知道你是否仍然需要一个答案...我是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 %}