Python 如何使用django双因素身份验证使用多个_base.html文件?

Python 如何使用django双因素身份验证使用多个_base.html文件?,python,django,django-two-factor-auth,Python,Django,Django Two Factor Auth,Django双因素身份验证库需要一个_base.html文件来定制用于集成的样式 我需要为我的登录页面的基础是不同的其他两个因素的网页。如何使用两个不同的_base.html文件,而不是对所有双因素URL使用相同的_base.html?在项目目录中,添加一个名为模板的文件夹,与您的应用程序(如用户,博客)级别相同。在其中,为双因素创建另一个文件夹。在该文件夹中,放置修改的base.html 如果您不知何故收到错误消息,请在TEMPLATES=[下的settings.py中进行替换 'DIRS':

Django双因素身份验证库需要一个_base.html文件来定制用于集成的样式


我需要为我的登录页面的基础是不同的其他两个因素的网页。如何使用两个不同的_base.html文件,而不是对所有双因素URL使用相同的_base.html?

在项目目录中,添加一个名为
模板的文件夹
,与您的应用程序(如
用户
博客
)级别相同。在其中,为
双因素
创建另一个文件夹。在该文件夹中,放置修改的
base.html

如果您不知何故收到错误消息,请在
TEMPLATES=[
下的
settings.py
中进行替换

'DIRS': [],

这是

在op自己的答案后更新

如果你想拥有
two\u factor/templates/two\u factor/core/login.html
使用你自己的
base.html
,你应该遵循我上面提到的,你将拥有
templates/two\u factor/core/login.html
。注意
模板
与你的其他
应用程序
在同一目录级别文件夹,生成
two_factor
文件夹,然后在其中生成
core
文件夹,然后在该文件夹中生成
login.html
。您现在可以根据需要对其进行修改

您希望覆盖但不更改包目录中的内容的原因是,当您更新包时,必须再次手动进行更改


上述方法之所以有效,是因为我们放置了
'DIRS':[os.path.join(BASE_DIR,'templates')]
在“设置”中,Django将首先查找此文件夹中的模板。此方法的详细应用程序在此处

我可以通过手动更改包目录
two\u factor/templates/two\u factor/core/login.html
中的以下行来解决此问题,该行引用
\u base.html
文件作为我的登录页面

{% extends "two_factor/_base_focus.html" %}

然后,我继续使用
\u base.html
自定义其他双因素页面。

到目前为止您尝试了什么?解决了!刚刚发布了我如何解决它。不知道为什么Django双因素会假设登录页面和设置/设置页面的基本样式应该相同…我正在尝试配置两个基本文件。一个用于登录路径和另一个用于其他两个因素的路径您的解决方案有效,但不理想。我更新了我的答案,我提到的方法正是针对这种情况的。请阅读更新的答案。关于可维护性的观点非常好!更新了我的代码/文件夹,所有内容都有效,谢谢!
'DIRS': [BASE_DIR.joinpath('templates')],# in django3
{% extends "two_factor/_base_focus.html" %}