我将这个社会注册/注册库django allauth用于我的一个项目。如何自定义默认模板和表单以提供更好的外观和感觉?
7 回答
假设您使用以下TEMPLATE_DIRS
设置设置了项目级模板目录:
TEMPLATE_DIRS = [
os.path.join(PROJECT_DIR, 'templates'),
]
您应该能够将此处显示的所有文件夹复制到该目录并根据需要进行编辑。大多数模板似乎都在填充一个{% block content %}
块,因此如果您的site_base.html
模板在某个地方定义了该块,这可能是最简单的。
如果你没有设置TEMPLATE_DIRS
,你可以做同样的事情,但是将模板文件夹复制到templates
你的一个应用程序的目录中。我更喜欢像那里一样设置TEMPLATE_DIRS
和保留主站点模板base.html
,因为它们并不真正属于特定的应用程序,但这实际上只是一种偏好;模板加载器应该以任何一种方式找到它们。
github 上最新版本的 all-auth 有它的模板,但是 Pypi 上没有,你需要做的就是在你的项目目录中克隆 repo 并覆盖模板。就如此容易。
在您看来:
from allauth.account.views import SignupView, LoginView
class MySignupView(SignupView):
template_name = 'my_signup.html'
class MyLoginView(LoginView):
template_name = 'my_login.html'
请注意构建您自己的模板的示例和文档。
不过,请在示例模板中观看这篇文章:
<form id="signup_form" method="post" action="{% url 'account_signup' %}">
我必须删除 URL 链接才能使其在我自己的模板中正常工作:
<form id="signup_form" method="post" action="">'
使用与覆盖管理模板相同的逻辑。
查看example
应用程序;它有一个templates
文件夹,指示必要模板的布局
这些都是很好的建议。
其中大部分应该可以工作。
不过,唯一对我有用的是将我自己的模板包含在“project/app/templates/account/”中,并确保“django-allauth”在我自己的应用程序之后的 INSTALLED_APPS 中列出。
我在这里发现了这一点。
要在安装后自定义 django-allauth,请从 site-packages 复制它并将其粘贴到您的项目应用程序目录中。这样,默认的allauth应用程序及其正在使用的模板将是您项目的allauth应用程序中的那些。然后,如果您想修改socialaccount的signup.html,请转到apps\allauth\templates\socialaccount\signup.html并通过在“阻止内容”标签内进行编辑来修改它:
{% block content %}
// your customized html for signup form
{% endblock %}
希望这会帮助你。