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

Django m2m通过模板中的额外字段引用++;,django,Django,我在引用我的“直通”m2m型号额外字段时遇到了一个问题。我 可以参照链接模型(用户),但不能参照 “通过模型”(listuser) 我的模型定义--- 用户模型是未触及的内置用户模型 class joblist(models.Model): userdetail = models.ManyToManyField(User,through='userextra') class userextra(models.Model): joblist = models.ForeignKey

我在引用我的“直通”m2m型号额外字段时遇到了一个问题。我 可以参照链接模型(用户),但不能参照 “通过模型”(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)
在我的模板中-----

我试过
{{item.userextra.comments}}{{item.comments}{{item.douser.comments}}

所以我从“用户”模型中得到了细节,但我没有得到 userextra模型上的额外字段

感谢您的帮助。。。。
N

视图中的反向翻转潜力大于模板


因此,虽然这是一个不雅观的解决方案,但我建议直接在视图中查询through模型,然后使用返回的内容临时适当地注释作业列表行中的项目,以便您可以明确、干净地执行row.foo.bar或item.baz.boof等操作,然后将手动注释的结果集传递到模板中

不确定您是否还需要答案。。。我是Python/Django新手,但我也在搜索同样的东西,当我搜索时,你的问题在谷歌排名很高,所以我想我会回答这个问题,以防有人在搜索

下面是我能够找到的:与其迭代
行.userdetail.all
,不如尝试迭代
行.userextra\u set.all

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

嗯,不知道你的意思,你能举个例子吗?我已经在视图中进行了一些过滤,但这无助于在模板中显示它。我不知道如何/是否重新排列查询集?但是如果我在模板中迭代作业列表,返回视图是。。。笨拙。你在视图中迭代和注释,然后在模板中再次迭代-你不能从模板返回到视图。。。
{% for row in joblist %}
html here
{% for item in row.userextra_set.all %}
{{ item.user.username }} - {{ item.comments }}
{% endfor %}
{% endfor %}