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等,然后将手动注释的一组结果传递给模板。
答
不知道你是否仍然需要一个答案...我是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 %}
嗯,不知道你的意思,你能举个例子吗? 我已经在视图中做了一些过滤,但是这并不帮助在模板中显示它。我不知道如何重新排列Queryset? – Niall 2010-08-18 17:57:13
但是,如果我遍历模板中的作业列表,回到视图是......尴尬。 – Bryce 2012-07-13 19:14:31
您在视图中迭代并注释,然后在模板中再次迭代 - 您无法从模板返回到视图中。 – 2012-07-13 20:22:43