引用我的“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
答案 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等,然后将手动注释的结果集传递给模板。