[英]Get an attribute in a template from a ManyToMany relationship in Django
在我的Django 1.5项目中,两个模型之间存在多对多关系:
class File(models.Model):
#..
subject = models.ManyToManyField(Subject)
class Subject(models.Model):
subject = models.CharField(max_length = 30, primary_key=True, blank=False, null=False)
我想要做的就是知道文件,然后访问我的HTML模板中的主题。
当然{{ file.subject }}
不起作用。 我知道{{ file.subject.subject }}
是可以循环的查询集,但是即使尝试,我也不知道如何获取正确的Subject
对象。
有一种方法只能通过模板来完成吗? 还是最好从视图中传递它?
尝试join
模板标签:
{{ file.subject.all|join:", " }}
或循环:
{% for subj in file.subject.all %}
{{ subj }}<br/>
{% endfor %}
将有0个或更多的科目; 如果您只想循环,请使用for
块遍历file.subject.all()
:
{% for subject in file.subject.all %}
{{ subject.subject }}
{% empty %}
Sorry, no subjects found.
{% endfor %}
如果需要查找特定主题,则必须进行查询。 在视图中这样做; 像这样的逻辑应该留给Python代码:
subject = file.subject.filter(subject__startswith='Foo').first()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.