bco*_*713 8 python django django-allauth
我一直试图让django-allauth工作几天,我终于知道发生了什么.
base.html该应用程序不会加载使用django-allauth安装的模板,而是加载base.html我用于其余网站的文件.
我怎么告诉django-allauth在virtualenv/lib/python2.7/sitepackages/django-allauth目录而不是我的project/template目录中使用base.html模板?
我有相反的问题:我试图用我自己的base.html文件,但我的Django项目被抓住django-allauth的版本base.html。事实证明,你定义的顺序INSTALLED_APPS在settings.py影响模板的呈现方式。为了让我的 base.html渲染而不是在 中定义的渲染django-allauth,我需要定义INSTALLED_APPS如下:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# custom
'common',
'users',
'app',
# allauth
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
]
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
Run Code Online (Sandbox Code Playgroud)
除非直接调用,否则您base.html是您定义的模板的扩展.
例如,如果您渲染一个名为的模板Page.html- 在顶部,您将拥有{% extends "base.html" %}.
如上所述,base.html它位于您在settings.pyunder下定义的路径中TEMPLATE_DIRS = ()- 从您的描述中定义为project/template.
最好的办法是将django-allauth base.html文件复制到定义的TEMPLATE_DIRS位置,将其重命名为allauthbase.html,然后扩展模板以包含它而不是默认的基础{% extends "allauthbase.html" %}.
或者,您可以将子文件夹添加到模板位置,例如project/template/allauth,将allauth放在base.html那里,然后使用{% extends "allauth/base.html" %}.
| 归档时间: |
|
| 查看次数: |
1580 次 |
| 最近记录: |