Ant*_*lad 5 django django-forms django-allauth
我已经设置了allauth并注意到它暴露/accounts/password/change/了一个可爱的表单来更改当前登录用户的密码.它还公开/accounts/email/了处理与将电子邮件地址链接到帐户相关的所有疯狂的奇妙之处.
我的问题是:
如何创建一个/accounts/settings/页面的概念,作为用户的典型设置页面,以便他们可以编辑他们的名称,更改他们的电子邮件信息或通过1个模板更新他们的密码?
我相信第一步是创建一个settings应用程序,然后连接一个/accounts/settings受登录保护的路由,创建一个视图来处理一个表单提交并显示allauth提供的其他模板,但我只是不确定如何将所有内容放在一起视图级别.
我认为在这个页面上有(3)单独的表格可能是个好主意.一个用于更改密码,第二个用于处理allauth提供的所有电子邮件业务,最后一个用于处理自定义信息,例如更新其名称以及您在扩展用户模型中可能拥有的任何其他内容?
嗯,很简单, allauth 帐户模板扩展了account/base.html扩展base.html,因此您可以编辑account/base.html左侧菜单作为导航,右侧内容将根据用户选择进行更改,将其放置在您的项目模板中account/base.html:
{% extends "base.html" %}
{% load url from future %}
{% load i18n %}
{% block body %}
<div class="container">
<div class="row">
<div class="span3 columns">
<div class="well">
<h3>{% trans "Account" %}</h3>
<ul class="nav nav-list">
<li><a href="{% url "profile_edit" %}">{% trans "Profile" %}</a></li>
<li><a href="{% url "account_change_password" %}">{% trans "Change password" %}</a></li>
<li><a href="{% url "socialaccount_connections" %}">{% trans "Social Connections" %}</a></li>
<li><a href="{% url "account_email" %}">{% trans "Manage Email Accounts" %}</a></li>
</ul>
</div>
</div>
<div class="span9 columns">
<div class="well">
{% block content %}{% endblock %}
</div>
</div>
</div>
</div>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
现在上面的模板将充当设置页面。例如,您可以将profile_edit设置页面设置为默认网址,当用户要登陆该页面时,它将看起来像这样:

我使用引导布局只是为了演示。还要密切注意模板中的块名称,根据您的不同,可能会有不同的名称base.html。
| 归档时间: |
|
| 查看次数: |
366 次 |
| 最近记录: |