如何覆盖 Django-allauth 提供的默认模板?

Posted

技术标签:

【中文标题】如何覆盖 Django-allauth 提供的默认模板?【英文标题】:How to over-ride the default templates provided by Django-allauth? 【发布时间】:2016-06-04 04:22:35 【问题描述】:

我创建了 myapp/templates/account/base.htmlmyapp/templates/account/login.html,所以我认为应该更改模板。但是转到 /account/login 仍然会加载默认模板,而不是我的新模板。那么我该如何真正超越它们呢?

我的 settings.py

中有这个
TEMPLATES = [
    
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': 
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',

                # `allauth` needs this from django
                'django.template.context_processors.request',
            ],
        ,
    ,
]

有什么帮助吗?

【问题讨论】:

【参考方案1】:

尝试将您的根目录添加到 DIRS 设置:

'DIRS': os.path.join(PROJECT_ROOT, 'templates'),

【讨论】:

【参考方案2】:

我通过将它们放在我的模板文件夹根目录下的account 和/或socialaccount 中来覆盖它们。可以选择使用名为allauth的父文件夹

你的结构看起来像:

模板 帐户 社交账号

模板 allauth 帐户 社交账号

原始模板可以在https://github.com/pennersr/django-allauth/tree/master/allauth/templates找到

【讨论】:

以上是关于如何覆盖 Django-allauth 提供的默认模板?的主要内容,如果未能解决你的问题,请参考以下文章

无法覆盖 django-allauth 模板

覆盖 django-allauth 表单域

如何编辑 django-allauth 默认模板?

使用 django-allauth 启用 oauth 登录,但使用自定义提供程序

使用 django-allauth 和 django-rest 框架

django-allauth 检索头像头像