Django allauth:你如何在利用allauth给我们的东西的同时创建一个典型的/账户/设置页面?

Ant*_*lad 5 django django-forms django-allauth

我已经设置了allauth并注意到它暴露/accounts/password/change/了一个可爱的表单来更改当前登录用户的密码.它还公开/accounts/email/了处理与将电子邮件地址链接到帐户相关的所有疯狂的奇妙之处.

我的问题是:

如何创建一个/accounts/settings/页面的概念,作为用户的典型设置页面,以便他们可以编辑他们的名称,更改他们的电子邮件信息或通过1个模板更新他们的密码?

我相信第一步是创建一个settings应用程序,然后连接一个/accounts/settings受登录保护的路由,创建一个视图来处理一个表单提交并显示allauth提供的其他模板,但我只是不确定如何将所有内容放在一起视图级别.

我认为在这个页面上有(3)单独的表格可能是个好主意.一个用于更改密码,第二个用于处理allauth提供的所有电子邮件业务,最后一个用于处理自定义信息,例如更新其名称以及您在扩展用户模型中可能拥有的任何其他内容?

Aam*_*nan 0

嗯,很简单, 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