我有一个问题,获得一个数据在模板中。我正在写代码在python文件它的工作。
students = Student.objects.all()
for x in students:
print(x.parent.get(gender='M').fullname)
它让我Parent Fullname
,但当我写在模板,如:
{% for x in students %}
<td class="small d-none d-xl-table-cell text-center">{{ x.parent.{%get(gender='F')%}.fullname }}</td>
{% endfor %}
它给了我Could not parse the remainder: '{%get(gender='F')%}.fullname' from 'x.parent.{%get(gender='F')%}.fullname'
错误。我试着像{{ x.parent.get(gender='F').fullname }}
一样写它,但是我得到了同样的错误
相同的代码在python文件中工作,但在模板中不工作。
2条答案
按热度按时间i2loujxw1#
你不能这么做:Django的模板语言是 * 故意 * 限制的,以防止人们在模板中编写业务逻辑。
您可以在
Student
模型中进行定义:然后使用:
模板中。
related_name=…
[Django-doc]是反向获取相关对象的管理器的名称。因此通常ForeignKey
或ManyToManyField
的related_name
是 * 复数 *,例如parents
而不是parent
。au9on6nz2#
您不能在
{{ }}
括号内包含{% %}
括号。您不能简单地在模板内使用所有Python逻辑。模板引擎只能处理一些简单的事情。对于更复杂的逻辑,您可以使用自定义标记,但首先要阅读:Django DOCS