Django包含标记语法错误

时间:2012-07-15 04:47:38

标签: python django templates object tags

尝试按照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>

我是否误解了如何创建包含标签和对象?谢谢你的任何建议。

1 个答案:

答案 0 :(得分:1)

嗯,毫不奇怪,您有语法错误。函数定义,就像在Python中启动块的任何东西一样,最后需要有一个冒号:

def types(information):

另请注意,由于某种原因,您已将参数命名为Information,这将隐藏类信息 - 您传递的任何对象,因为实际参数将用作objects.all()查询的基础,这不太可行。