django:自定义inclusion_tag出错,错误信息:无效的块标签

1 投票
2 回答
1196 浏览
提问于 2025-04-15 17:26

我正在尝试在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 %}

撰写回答