1

我最近才开始使用 Django,并假设这个问题必须有一个好的解决方案!

通过 pip 安装 django-allauth 后,它尝试base.html从我的project/templates文件夹而不是它自己的子目录扩展。该用户遇到了同样的问题,并被告知重命名其中一个base.html文件,然后在相关应用模板中更新对其的所有引用。对于复杂的应用程序(已经很糟糕),这很容易出错;如果多个第三方应用程序各自定义自己的应用程序base.html并将其简称为{% extends 'base.html' %}. 此外,我认为这仅适用于第三方应用程序,因为我可以轻松地将 base.html 命名为我自己的每个应用程序的不同名称,但我不想弄乱有效的第三方应用程序。

我的问题是:是否有一种安全/简单的方法可以让多个第三方应用程序使用{% extends 'base.html' %}而不会发生冲突

我已阅读 Django 中模板继承的文档并了解:

  • 默认情况下,模板首先从文件系统加载,然后从应用子目录加载。因此projects/templates,在我的设置中定义的目录TEMPLATE_DIRS将首先被调用;因此 django-allauth 问题。
  • 我可以通过更改TEMPLATE_LOADERS. 但是,这只是意味着我的网站现在将扩展错误的base.html.

尽管我可以通过重命名 allauth 的base.htmlasallauthbase.html并将子模板引用更改为 来修复当前的冲突{% extends 'allauthbase.html' %},但这似乎很笨重。

最奇怪的是,这个人抱怨每个应用程序默认扩展了自己的 base.html,但这似乎是不可能的......

4

1 回答 1

0

似乎有一个与该问题相关的未解决问题: https ://github.com/pennersr/django-allauth/issues/370

于 2015-02-11T07:37:25.907 回答