0.96 和 1.0 的 Django 模板继承的区别?

Posted

技术标签:

【中文标题】0.96 和 1.0 的 Django 模板继承的区别?【英文标题】:Differences in Django Template Inheritance between 0.96 and 1.0? 【发布时间】:2010-11-08 02:12:28 【问题描述】:

现在 Google App Engine 原生支持 Django 1.0,我使用以下代码进行了更新:

从 google.appengine.dist 导入 use_library

use_library('django', '1.0')

我现在收到与模板继承有关的模板错误。

例如,如果我有:

% 扩展“../base.html” %

引用父目录中的 base.html,这在 Django 0.96 中按预期工作,但 Django 1.0 无法找到引用的模板。

Django 文档 (http://docs.djangoproject.com/en/dev/topics/templates/#template-inheritance) 不要提及版本之间的任何差异......

【问题讨论】:

+1 哇,您的问题和接受的答案让我至少省了一个小时的头痛。谢谢! 【参考方案1】:

从 0.96 和 1.0 模板继承的主要区别在于,如果您使用 % extends %,它必须是模板中的第一行。

如果这不是问题,请发布回溯,以便我们了解发生了什么。

【讨论】:

【参考方案2】:

我认为您不能在模板继承中使用相对导入。那是你的问题。您需要指定相对于 TEMPLATES_DIR(或 applicationdirectory/templates)如何找到它

【讨论】:

这是问题所在,Django 文档似乎没有明确说明这是 0.96 和 1.0 之间的差异。 可能很明显,但为了记录和 Google 的利益,这也适用于 Django 1.1。

以上是关于0.96 和 1.0 的 Django 模板继承的区别?的主要内容,如果未能解决你的问题,请参考以下文章

GAE/Django 模板 (0.96) 过滤器以获取 GqlQuery 的长度并对其进行过滤

Django模板继承和引用

django-7.django模板继承(block和extends)

python测试开发django-7.django模板继承(block和extends)

django下模板的包含和继承

Django 第六课 模板继承