Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从Django中的多个关系获取模板中的属性_Python_Django_Django Templates - Fatal编程技术网

Python 从Django中的多个关系获取模板中的属性

Python 从Django中的多个关系获取模板中的属性,python,django,django-templates,Python,Django,Django Templates,在我的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) 我想做的是,了解文件,访问HTM

在我的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}
这是一个可以循环的查询集,但即使我尝试,我也不知道如何获取正确的
主题
对象


有没有一种方法可以只从模板中执行?或者最好从视图中传递它?

尝试
join
模板标记:

{{ file.subject.all|join:", " }}
或循环:

{% for subj in file.subject.all %}
     {{ subj }}<br/>
{% endfor %}
{file.subject.all%中subj的%
{{subj}}
{%endfor%}
尝试加入
模板标记:

{{ file.subject.all|join:", " }}
或循环:

{% for subj in file.subject.all %}
     {{ subj }}<br/>
{% endfor %}
{file.subject.all%中subj的%
{{subj}}
{%endfor%}
将有0个或更多主题;如果只想循环,请在
file.subject.all()上使用
for
块执行循环:

{file.subject.all%中的主题为%
{{subject.subject}}
{%empty%}
抱歉,找不到主题。
{%endfor%}
如果你需要找到一个特定的主题,你必须查询它。这样做的观点;这样的逻辑应该留给Python代码:

subject = file.subject.filter(subject__startswith='Foo').first()

将有0个或更多科目;如果只想循环,请在
file.subject.all()上使用
for
块执行循环:

{file.subject.all%中的主题为%
{{subject.subject}}
{%empty%}
抱歉,找不到主题。
{%endfor%}
如果你需要找到一个特定的主题,你必须查询它。这样做的观点;这样的逻辑应该留给Python代码:

subject = file.subject.filter(subject__startswith='Foo').first()