Pinax源代码分析6 - account

Pinax源代码分析6 - account

account —— 帐户管理package,在lib/pinax/ 目录下。

url

    (r'^account/', include('account.urls')),

逻辑与模板

依赖:

from emailconfirmation.models import EmailAddress, EmailConfirmation
from django_openid.models import UserOpenidAssociation

url(r'^email/$', 'account.views.email', name="acct_email"),

 pinax

email view 负责添加邮箱、发送确认邮件、删除邮件、设置主要邮箱。
email
模板
{% extends "account/base.html" %}
{% load i18n %}
{% load uni_form %}

    <form method="post" action="" class="uniForm">
        <fieldset class="inlineLabels">
            {{ add_email_form|as_uni_form }}
             <div class = "form_block">
                 <input type="hidden" name="action" value="add"/>
                 <input type="submit" value="{% trans "add" %}"/>
            </div>
        </fieldset>
    </form>

该模板扩展了base.htmlbase.html在项目文件夹下,主要负责提供account模块的子导航条。
uniform
lib目录下的一个第三方appas_uni_form是一个自定义filter,以div来展示表单。

url(r'^signup/$', 'account.views.signup', name="acct_signup"),

 pinax注册

signup view 负责用户注册。
signup
模板
{% extends "site_base.html" %}
    {% load jquery_validation %}
    {% include_validation %}
    <script type="text/javascript">
        $(function(){
            $('#signup_form').validate('{% url signup_form_validate %}', {type: 'table', fields: ['username'], dom: $('#id_username'), event: 'change'});
            $("#id_username").focus();
        });
    </script>

jquery_validation
ajax_validation app 定义的自定义标签,{% include_validation %}的作用就是包含进来验证表单需要的js脚本。signup_form_validate定义在:    (r'^validate/$', 'ajax_validation.views.validate', {'form_class': SignupForm}, 'signup_form_validate')


url(r'^login/$', 'account.views.login', name="acct_login"),

url(r'^login/openid/$', 'account.views.login', {'associate_openid': True}, name="acct_login_openid"),
pinax登录



login view
负责用户登录,支持使用openid
login
模板


{% extends "site_base.html" %}
{% load ifsetting_tag %}
        {% ifsetting ACCOUNT_OPEN_SIGNUP %}
        {% url acct_signup as signup_url %}
        <p>{% blocktrans %}Don't have an account? <a href="{{ signup_url }}">Sign up</a>!{% endblocktrans %}</p>
        {% endifsetting %}

其中 ifsetting_tag misc app 中定义。


password

    url(r'^password_change/$', 'account.views.password_change', name="acct_passwd"),
    url(r'^password_set/$', 'account.views.password_set', name="acct_passwd_set"),
    url(r'^password_delete/$', 'account.views.password_delete', name="acct_passwd_delete"),
    url(r'^password_delete/done/$', 'django.views.generic.simple.direct_to_template', {
        "template": "account/password_delete_done.html",
    }, name="acct_passwd_delete_done"),
    url(r'^password_reset/$', 'account.views.password_reset', name="acct_passwd_reset"),

    # Setting the permanent password after getting a key by email
    url(r'^password_reset_key/$', 'account.views.password_reset_from_key', name="acct_passwd_reset_key"),   

pinax修改密码

 

修改密码,设置密码(原来密码为空),删除密码(如果有openid就可以删除),重置密码,

url(r'^timezone/$', 'account.views.timezone_change', name="acct_timezone_change"),

 pinax时区设置

修改时区设置。Pinax的时区设置使用的是django_timezones中的timezones app。例如:
class Account(models.Model):
    ……
    timezone = TimeZoneField(_('timezone'))
    ……

class ChangeTimezoneForm(AccountForm):
    timezone = TimeZoneField(label=_("Timezone"), required=True)
    ……

url(r'^language/$', 'account.views.language_change', name="acct_language_change"),

 pinax语言设置

修改语言设置。

other_services

    url(r'^other_services/$', 'account.views.other_services', name="acct_other_services"),
    url(r'^other_services/remove/$', 'account.views.other_services_remove', name="acct_other_services_remove"),
pinax twitter帐号关联

 

借助于django_microblogging microblogging app 实现对 twitter 绑定的支持。估计Pinax的作者是希望可以集合多个服务,而不只是twitter一个,所以才使用pther_services这个名字。

url(r'^logout/$', 'django.contrib.auth.views.logout', {"template_name": "account/logout.html"}, name="acct_logout"),

退出。

url(r'^confirm_email/(/w+)/$', 'emailconfirmation.views.confirm_email', name="acct_confirm_email"),

使用emailconfirmation app view来处理。模板在 default 主题里。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值