Django-allauth加载了错误的base.html模板

时间:2013-05-13 15:58:08

标签: python django django-allauth

我一直试图让django-allauth工作几天,我终于知道发生了什么。

该应用程序不会加载使用django-allauth安装的base.html模板,而是加载我用于其余网站的base.html文件。

如何告诉django-allauth使用virtualenv/lib/python2.7/sitepackages/django-allauth目录中的base.html模板而不是project/template目录?

6 个答案:

答案 0 :(得分:7)

除非直接调用,否则base.html是您定义的模板的扩展名。

例如,如果您呈现名为Page.html的模板 - 在顶部,您将拥有{% extends "base.html" %}

如上所述,base.html位于您在settings.pyTEMPLATE_DIRS = ()下定义的路径中 - 根据您的说明,该路径定义为project/template

最好的办法是将django-allauth base.html文件复制到定义的TEMPLATE_DIRS位置,将其重命名为allauthbase.html,然后扩展模板以包含它而不是默认基础通过{% extends "allauthbase.html" %}

或者,您可以将子文件夹添加到模板位置,例如project/template/allauth,将allauth base.html放在那里,然后使用{% extends "allauth/base.html" %}

答案 1 :(得分:3)

两年后,这仍然是个问题,接受的答案是缺少一些新信息。

github上,我发现所有allauth模板都来自account / base.html,它来自base.html。我的解决方案是:

  • virtualenv/lib/python2.7/sitepackages/django-allauth/templates中,复制base.html的全部内容以替换account/base.html中的所有内容(即替换{% extends 'base.html' %}声明)
  • 删除allauth' base.html。它现在是多余的。

完成!

答案 2 :(得分:1)

django-allauth模板似乎扩展了account/base.htmlexample),扩展了base.html

因此请将base.html复制到例如myapp/templates/account/base.html,并确保myappdjango-allauth之前加载(将其放在INSTALLED_APPS中更高)。

现在,django身份验证模板将扩展您的account/base.htmldjango-allauth base.html

这并不完美,因为django-allauth的{​​{1}}可能会更新,而您会错过这些更新。但它似乎比重命名所有导入或更改base.html代码更好。

请注意,您也可以在django-allauth内围绕内容添加{% block content %},然后base.html将使用该样式,这在许多情况下似乎都是好事。< / p>

答案 3 :(得分:1)

Allauth尝试扩展myproject/templates/base.html。最简单的方法是将base.html移至myproject/templates/site/以获取myproject/templates/site/base.html或简单地重命名base.html

答案 4 :(得分:1)

提供的所有答案都迫使您重写文件并修改您自己的项目以适合allauth,这是完全不可接受的工作流程。这样的第三方应用程序不应具有对您自己的项目的操纵能力。

确实,处理这种情况的最简单方法(尤其是根据所提供的答案)是将allauth应用及其关联的应用简单地移动到INSTALLED_APPS文件中settings.py列表的末尾。 Django将在其下面列出的其他应用中找到您的base.html模板,然后再找到另一个base.html模板。

问题解决了。

答案 5 :(得分:1)

我遇到了相反的问题:我试图使用自己的base.html文件,但是我的Django项目正在获取django-allauth的{​​{1}}版本。事实证明,您在base.html中定义INSTALLED_APPS的顺序会影响模板的呈现方式。为了使 settings.py而不是base.html中定义的那个呈现,我需要定义django-allauth如下:

INSTALLED_APPS