尝试按照Django Inclusion Tag documentation创建自定义模板代码,但在第6行获取模板语法错误:def types(Information)
。
from django import template
register = template.Library()
@register.inclusion_tag('edit.html')
def types(Information)
informations = Information.objects.all()
return {'informations': informations}
templatetag.py
文件位于/templatetags
目录中。
信息模型:
class Information(models.Model):
name = models.CharField(max_length=20)
models = models.ManyToManyField('Model')
模板(edit.html):
{% load templatetag %}
<ul>
{% for information in informations %}
<li> {{ information }} </li>
{% endfor %}
</ul>
我是否误解了如何创建包含标签和对象?谢谢你的任何建议。
答案 0 :(得分:1)
嗯,毫不奇怪,您有语法错误。函数定义,就像在Python中启动块的任何东西一样,最后需要有一个冒号:
def types(information):
另请注意,由于某种原因,您已将参数命名为Information
,这将隐藏类信息 - 您传递的任何对象,因为实际参数将用作objects.all()
查询的基础,这不太可行。