我将此社交注册/注册库django allauth用于我的项目。如何自定义默认模板和表单以提供更好的外观和感觉?
答案 0 :(得分:21)
假设您使用TEMPLATE_DIRS
设置设置了项目级模板目录,如:
TEMPLATE_DIRS = (os.path.join(PROJECT_DIR, 'templates'),)
您应该能够将显示here的所有文件夹复制到该目录中,并根据需要进行编辑。大多数模板似乎都填充了{% block content %}
块,因此如果您的site_base.html
模板在某处定义了该块,则可能最简单。
如果您尚未设置TEMPLATE_DIRS
,则可以执行相同操作,但将模板文件夹复制到其中一个应用的templates
目录中。我更喜欢设置TEMPLATE_DIRS
并保留主要网站模板,例如base.html
,因为它们并不真正属于特定的应用,但这只是一个偏好;模板加载器应该找到它们。
答案 1 :(得分:12)
github上的最新版本的all-auth有其模板在外面,但是Pypi上的模板不是,你需要做的就是在你的项目目录中克隆repo并覆盖模板。就如此容易。
答案 2 :(得分:11)
在您的观点中:
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' %}">
我必须删除网址链接才能使其在我自己的模板中正常运行:
<form id="signup_form" method="post" action="">'
答案 3 :(得分:8)
使用与overriding admin templates相同的逻辑。
答案 4 :(得分:3)
查看example
应用程序;它有一个templates
文件夹,指示必要模板的布局
答案 5 :(得分:2)
要在安装后自定义django-allauth,请将其从site-packages复制并粘贴到项目apps目录中。通过这种方式,默认的 allauth 应用及其使用的模板将是您项目的 allauth 应用中的应用。然后,如果您要修改 socialaccount 的 signup.html ,请转到 apps \ allauth \ templates \ socialaccount \ signup.html 并按以下方式修改在'block content'标签内编辑:
{% block content %}
// your customized html for signup form
{% endblock %}
希望这会对你有所帮助。
答案 6 :(得分:1)
所有这些都是很好的建议。
其中大部分都应该奏效。
唯一对我有用的是在“project / app / templates / account /”中包含我自己的模板,并确保“django-allauth”在后的INSTALLED_APPS 中列出>我自己的应用程序。
我发现了这个here。