模板中的多对多通过模型中的 Django 访问条目

Posted

技术标签:

【中文标题】模板中的多对多通过模型中的 Django 访问条目【英文标题】:Django access entry from ManyToMany Through model in a template 【发布时间】:2018-12-05 16:20:13 【问题描述】:

我想访问订阅给定培训的用户列表,并且我设法获得了正确数量的订阅者列表,但所有订阅者都有当前登录用户的名称。提前致谢!

模型.py

class Training(Base):
    subscribers = ManyToManyField(User, through = 'Subscription')

class Subscription(Base):
    user = ForeignKey(User, on_delete = CASCADE)
    training = ForeignKey(Training, on_delete = CASCADE)

views.py

class ShowSubscribers(Subscription):
    def get(self):
        self.subscribers = models.Subscription.objects.filter(training = self.get_training())

在我的模板中,我按以下方式调用列表:

% for s in subscribers %
      subscription.user.first_name
% endfor %

【问题讨论】:

【参考方案1】:

您的模板中的subscription 是什么?尝试改变这个:

% for s in subscribers %
      subscription.user.first_name
% endfor %

到这里:

% for s in subscribers %
      s.user.first_name
% endfor %

【讨论】:

以上是关于模板中的多对多通过模型中的 Django 访问条目的主要内容,如果未能解决你的问题,请参考以下文章

如何从 django 模板访问多对多“通过”表的属性?

如何过滤和访问 Django QuerySet 中的多对多字段?

如何在 django 中处理未保存的多对多关系?

Django 管理中的多对多:选择无

通过 Django 中的模型表单保存多对多数据

使 ModelForm 与 Django 中的中间模型的多对多关系工作的步骤是啥?