在 Django 中启用模板继承
Posted
技术标签:
【中文标题】在 Django 中启用模板继承【英文标题】:Enabling Template Inheritance in 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”。似乎是基础视图和包含块的视图之间的脱节。 能否请您展示您的观点(至少是其中的一部分)? 【参考方案1】:在您看来,您需要确保您指向的模板是testblock.html
而不是testbase.html
。
假设您使用的是render_to_response
,它看起来像:
return render_to_response('testblock.html')
如果您的视图函数引用testbase.html
,那么您将获得未扩展的模板。这是设计使然。
这里有一个指向template documentation 的链接,以供参考。 :)
【讨论】:
谢谢!我正在从视图中调用基本模板。太沉迷于认为这是模板中的问题。以上是关于在 Django 中启用模板继承的主要内容,如果未能解决你的问题,请参考以下文章