0

我花了很长时间才弄清楚为什么模板没有被覆盖,只是发现似乎 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 正确的模板(即我的 in )。mysite/myapp/templates/registration

如何解决这个问题?也就是说,如何让 Django 加载我覆盖的模板而不删除/Library?

4

1 回答 1

1

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

为了覆盖其中的一个或多个,首先在项目的模板目录中创建一个管理目录。这可以是您在 TEMPLATE_DIRS 中指定的任何目录。

在此处阅读 Django 文档

于 2013-04-04T00:25:16.653 回答