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

时间:2010-08-18 14:39:23

标签: django

引用我的“THROUGH”m2m模型额外字段时遇到了问题。一世 可以引用链接的模型(User),但不能引用其他详细信息 “通过模型”(listuser)

我的模型定义--- 用户模型是未经修改的内置用户模型。

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模型上的额外字段????

任何帮助表示赞赏.... N

2 个答案:

答案 0 :(得分:1)

不确定你是否还需要一个答案......我是Python / Django的新手,但我正在搜索同样的东西,当我搜索时你的问题在Google中排名很高,所以我想我会回答它其他人都在搜索。

以下是我能够找到的内容:而不是迭代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 %}

答案 1 :(得分:0)

视图中的后空翻可能比模板更多。

所以,虽然这是一个不优雅的解决方案,但我建议直接在视图中查询直通模型,然后使用你回来的内容临时注释你的工作清单行中的项目,这样你就可以干净利落地do row.foo.bar或item.baz.boof等,然后将手动注释的结果集传递给模板。