在我的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
对象。
有没有办法只从模板中做到这一点?或者最好从视图中传递它?
答案 0 :(得分:2)
试试join
模板标记:
{{ file.subject.all|join:", " }}
或循环:
{% for subj in file.subject.all %}
{{ subj }}<br/>
{% endfor %}
答案 1 :(得分:1)
将有0个或更多科目;如果您只想循环播放,请使用for
file.subject.all()
块进行{% for subject in file.subject.all %}
{{ subject.subject }}
{% empty %}
Sorry, no subjects found.
{% endfor %}
:
subject = file.subject.filter(subject__startswith='Foo').first()
如果您需要查找特定主题,则必须查询该主题。在视图中这样做;像这样的逻辑应留给Python代码:
{{1}}