【问题标题】:django: same template tag but in multiple inherited html templatesdjango:相同的模板标签,但在多个继承的 html 模板中
【发布时间】:2011-06-26 15:23:10
【问题描述】:

我在 django 中使用模板继承。

目前有frame.html和book_detail.html

book_detail.html 扩展了 frame.html,我有 books_tags.py

# In frame.html
{% load books_tags %}
{% book_list %} # using a tag from books_tags.py



# In books.html
{% extends frame.html %}
{% block content %}
   {% book_list %} # I want to use this from books_tags.py also
{% endblock %}

当我尝试使用同一个 books_tags.py 中的 book_list 时,它给了我语法错误。 或者,当我首先将 {% load books_tags %} 放入 book_detail.html 时,它仍然会给我语法错误。

无效的块标签:'book_list', 预期的“endblock”或“endblock” 内容”

有什么方法可以在多个继承的模板中使用相同的模板标签? 还是我需要在其中创建具有相同定义的 frame_tags.py 和 book_detail_tags.py?

由于 django 中的默认模板过滤器在多重继承中工作,我猜它应该可以工作,但不知道如何通过语法错误获取。

谢谢。

== 更新 ==

再次在 books.html 的 {% block content %} 内添加 template_tag。

# In books.html
{% extends frame.html %}
{% block content %}
   **{% load books_tags %}**
   {% book_list %} # I want to use this from books_tags.py also
{% endblock %}

【问题讨论】:

    标签: django multiple-inheritance django-templates


    【解决方案1】:

    你可以在多个模板中使用相同的模板标签,但你必须在每个文件中调用{% load books_tags %},即使它们之间存在继承关系。

    https://docs.djangoproject.com/en/dev/topics/templates/#custom-libraries-and-template-inheritance

    【讨论】:

      猜你喜欢
      • 2012-10-07
      • 2013-01-09
      • 1970-01-01
      • 2018-12-18
      • 2010-12-23
      • 2015-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多