django - Django:通过模板中的模型显示多对多关系
问题描述
我通过中间模型建立了这种多对多关系:
class Group(models.Model):
members = models.ManyToManyField(Student, through='NamedMembershipClub')
class Membership(models.Model):
year = models.IntegerField()
user = models.ForeignKey(User, on_delete=models.CASCADE)
group = models.ForeignKey(Group, on_delete=models.CASCADE)
我正在尝试显示成员加入我的模板的年份。我在这篇文章上读到我应该使用members_set.all
{% for member in object.members_set.all %}
<p>{{member.user.first_name}} {{member.year}}</p>
{% endfor %}
但它不会产生任何输出,只是没有进入循环,因为集合是空的。我也试过:
{% for member in object.members.all %}
<p>{{member.first_name}}</p>
{% endfor %}
风景:
class DetailGroupView(TemplateView):
template_name = 'group/detail.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
self.object = Group.object.get(slug=kwargs['slug'])
context['object'] = self.object
return context
这让人有些满意,因为我可以在 Membership 模型中显示用户但不能显示相关数据。有没有办法直接在模板中获取集合?谢谢!我正在运行 Django 3.0。
解决方案
推荐阅读
- mercurial - 在所有克隆之间共享 .hg/hgrc 设置
- javascript - Inline function in React isn't running
- react-select - How do you get rid of this className react-select warning?
- node.js - Electron, Closing "sub-window" from main window
- python - python 3.6 //更新pyodbc
- reactjs - 反应传单库的自定义弹出窗口
- excel - Excel获取corespods为null的值
- ibm-watson - 如何让 Watson Assistant 捕获上下文变量中的多个实体
- r - 翻转矩阵列
- ios - 使用 Swift、AlamoFire 和 SwiftyJSON 解析 JSON 数据