django:自定义inclusion_tag出错,错误信息:无效的块标签
我正在尝试在Django中写一个自定义的包含标签。
我参考了这个例子:http://docs.djangoproject.com/en/dev/howto/custom-template-tags/
我写的代码是:
from django import template
from libmas import models
register = template.Library()
@register.inclusion_tag('records.html')
def display_records(book_id):
book = models.book.objects.get(id__exact=book_id)
records = models.objects.filter(books=book)[0:10]
return {'records':records}
但是我在IE浏览器中遇到了一个
Invalid block tag: 'libmas_tags'
错误。
我的'records.html'文件内容是:
{% for record in records %}
<blockquote>{{record.id}}</blockquote>
{% endfor %}
我另一个HTML文件的内容是:
{% extends "admin/change_form.html" %}
{% libmas_tags %}
{% block after_field_sets %}
{% if object_id %}
{% display_records object_id %}
{% endif %}
{% endlock %}
2 个回答
1
什么是 libmas_tags
?你定义的标签叫做 display_records
,在你的模板中应该使用这个标签。如果标签文件叫做 libmas_tags,你需要先加载它,正如 czarchaic 所提到的。
3
问题出在你的模板上。它在调用 {% libmas_tags %}
。你有没有创建一个叫做 libmas_tags 的模板标签?如果有的话,你可能需要把它改成
{% load libmas_tags %}