如何覆盖所有Auth内置模板Django

42fyovps  于 2023-11-20  发布在  Go
关注(0)|答案(2)|浏览(135)

我正在使用Django all auth来实现密码重置功能,但我想自定义密码重置的模板,下面是我的URL:

url.py

from django.conf.urls import url,include
from django.urls import path
from rest_framework_jwt.views import obtain_jwt_token,refresh_jwt_token
from . import views

# Registration,Login,Forgot,Profile change

urlpatterns=[

    url(r'^accounts/', include('allauth.urls')),

]

字符串
当我点击这个网址-> http://127.0.0.1:8000/ThiefApp/accounts/password/reset/
I got below template
x1c 0d1x的数据
我如何自定义上述模板或如何使用不同的模板。有什么建议吗?

piv4azn7

piv4azn71#

allauth在allauth/templates目录中包含了很多模板。如果你想覆盖任何模板,那么你需要在你的项目中添加与allauth模板目录中包含的模板同名的模板。(参考:https://django-allauth.readthedocs.io/en/latest/templates.html#overridable-templates)。
在这里,你想覆盖密码重置页面,然后在你的项目中创建一个模板 “password_reset.html”。你的模板目录结构必须像yourproject/templates/allauth/account/。我希望这将帮助你:)

gojuced7

gojuced72#

我最近在django-allauth 0.58.1中挣扎,最后我发现了它是如何工作的(它真的是一段漂亮的代码,绕过它是一个遗憾),所以.
只需创建类似于django-allauth的模板路径,并将其放在主'templates'目录中。您可以在allauth's github上找到所有模板
一个快速和简单的定制可以是:

  • templates/allauth/layouts/base.html中重定向到你自己的base.html(或将其用作你自己的基础):
{% extends 'my_base.html' %}

字符串

  • 确保{% load socialaccount %}位于您自己的base.html的顶部
  • 自定义**templates/allauth/elements/**中的所有元素(比看起来更快)

allauth's github examples中,你会发现一些准备好的模板,我强烈建议至少复制/粘贴(然后自定义)这2:

  • allauth/elements/fields.html
  • allauth/elements/field.html

这应该比我自己更有帮助,我希望。

相关问题