【问题标题】:Enabling Template Inheritance in Django在 Django 中启用模板继承
【发布时间】:2011-12-24 23:22:19
【问题描述】:

Python 2.7.1 / Django 1.3

我是 Django 模板的新手,正在尝试做非常简单的模板继承。

testbase.html

hello

{% block tester %}
fail
{% endblock %}

testblock.html

{% extends "testbase.html" %}

{% block tester %}
pass
{% endblock %}

结果

hello fail

这两个模板位于已添加到项目 settings.py 文件中的同一目录中,由于它找到了基本模板,我无法找到为什么它无法找到子模板。

感谢您对下一步尝试的任何想法。

【问题讨论】:

  • 您是否正在从您的视图中渲染“testblock.html”?
  • 是的,它是从视图中渲染的,我怀疑视图正确地渲染了基本模板,因为它渲染了“hello fail”。似乎是基础视图和包含块的视图之间的脱节。
  • 能否请您展示您的观点(至少是其中的一部分)?

标签: python django templates inheritance django-templates


【解决方案1】:

在您看来,您需要确保您指向的模板是testblock.html 而不是testbase.html

假设您使用的是render_to_response,它看起来像:

return render_to_response('testblock.html')

如果您的视图函数引用testbase.html,那么您将获得未扩展的模板。这是设计使然。

这里有一个指向template documentation 的链接,以供参考。 :)

【讨论】:

  • 谢谢!我正在从视图中调用基本模板。太沉迷于认为这是模板中的问题。
猜你喜欢
  • 2015-11-13
  • 1970-01-01
  • 1970-01-01
  • 2010-12-23
  • 2013-01-09
  • 1970-01-01
  • 2021-01-10
  • 1970-01-01
相关资源
最近更新 更多