Django错误的模板优先级?

时间:2013-04-04 00:11:09

标签: python django templates

我花了很长时间才发现为什么模板没有被覆盖,只是发现Django似乎没有在覆盖模板时使用正确的优先级。

我正在尝试更改的模板是用于更改用户密码的模板,这些模板是为URL /accounts/password/change加载的。

我在mysite/myapp/templates/registration中有我修改过的模板;系统默认模板位于/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/contrib/admin/templates/registration。当这些目录中都存在模板时,Django使用系统(/Library)。咦?

当我删除/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/contrib/admin/templates/registration 中的模板时,会加载正确的模板(例如我的mysite/myapp/templates/registration)。

如何解决此问题?也就是说,如何让Django加载我重写的模板而不删除/Library中的原始模板?

1 个答案:

答案 0 :(得分:1)

您必须在模板目录中创建一个管理目录,您可以在其中设置要覆盖的模板

  

要覆盖其中一个或多个,首先在项目的templates目录中创建一个admin目录。这可以是您在TEMPLATE_DIRS中指定的任何目录。

Read the Django doc here