因为在部署过程中会涉及用户邮件发送,如果有的同事不愿意收到太多邮件,则可以自己定义为不存在的邮箱。

我们在注册的时候,也不会写用户邮箱地址,那么他们也可以在这里自己更改。

changeemail.html模板

{% extends "index.html" %}
{% load staticfiles %}

{% block title %} 修改邮箱 {% endblock %}

{% block content %}
   <div class="tm-middle">
        <div class="uk-container uk-container-center">
            <h3 class="tm-article-subtitle uk-margin-top">
                修改邮箱
            </h3>
           <hr class="uk-grid-divider">

            <div class="uk-panel uk-panel-box uk-container-center uk-width-1-3">
                <h3 class="uk-panel-title"><i class="uk-icon-user"></i>修改邮箱</h3>

                    <div class="uk-grid">
                    <div >
                        当前邮箱:{{ user.email }}
                         {% if changeemail_success %}
                            <div class="uk-alert">邮箱更新成功!</div>
                        {% endif%}
                    <form class="uk-form uk-form-horizontal uk-margin-top" action="" method="post">
                        {% csrf_token %}

                        <div class="uk-form-row">
                            <div class="uk-form-label">
                                更改{{ form.email.label_tag }}
                            </div>
                            <div class="uk-form-control">
                                {{ form.email }}
                            </div>
                        </div>
                        <div class="uk-form-row">
                            <input type="submit" value="确认修改" class="uk-button uk-button-primary">
                        </div>
                    </form>
                    </div>
                </div>
            </div>

        </div>
   </div>
{% endblock %}

forms.py表单文件:

class UserEmailForm(forms.ModelForm):
    email = forms.EmailField(required=True)

    class Meta:
        model = User
        fields = ('email',)

views.py文件:

def changeemail(request):
    if request.POST:
        user_form = UserEmailForm(request.POST, instance=request.user)
        if user_form.is_valid():
            user_form.save()
            return render_to_response('changeemail.html', RequestContext(request, {'form': user_form, 'changeemail_success': True}))
    else:
        user_form = UserEmailForm()
        return render_to_response('changeemail.html', RequestContext(request, {'form': user_form, }))

最后,,就简单的弄出来了。

DJANGO里让用户自助修改邮箱地址的更多相关文章

  1. DJANGO里让用户自助修改密码

    参考了网上的实现,最终实现的各代码如下: changepwd.html模板文件: {% extends "Prism/index.html" %} {% load staticfi ...

  2. 在word文档里提取出所有的邮箱地址

    怎样在word文档里提取出所有的邮箱地址 文档内容太多,邮箱也有很多,一个个复制粘贴太浪费时间,怎样把这些邮箱简单的提取出来  答案:用查找功能. 查找目标:[A-z,0-9]{1,}\@[A-z,0 ...

  3. repo 修改邮箱地址

    需要重新运行 repo init 被带上参数: --config-name xx@a.com

  4. Django里自定义用户登陆及登陆后跳转到登陆前页面的实现

    def logout(request): request.session.flush() return HttpResponseRedirect(request.META.get('HTTP_REFE ...

  5. 如何在 Xamarin 中快速集成 Android 版认证服务 - 邮箱地址篇

    Xamarin 作为微软提供的移动服务多系统开发平台,成为很多开发者首选的应用开发平台.AppGallery Connect(以下简称 AGC)也在逐步的支持 Xamarin 的 SDK.认证服务也是 ...

  6. Google 宣布支持中文邮箱地址

    Gmail 宣布,即日起开始支持非拉丁字符邮箱地址.也就是说,我们可以在 Gmail 中针对中文邮箱地址发送和接收邮件了. 全世界母语是拉丁字母语言的人类不超过全人类总数的一半,母语是英语的人数更少. ...

  7. 30、Django实战第30天:修改邮箱和用户信息

    修改个人邮箱需要完成两个接口,一个是获取验证码,一个是新的邮箱和验证码是否匹配 1.编辑users.views.py class SendEmailCodeView(LoginRequiredMixi ...

  8. GIT 查看/修改用户名和邮箱地址

    用户名和邮箱地址的作用用户名和邮箱地址是本地git客户端的一个变量,不随git库而改变.每次commit都会用用户名和邮箱纪录.github的contributions统计就是按邮箱来统计的.查看用户 ...

  9. Django实战(一)-----用户登录与注册系统7(邮件确认)

    通常而言,我们在用户注册成功,实际登陆之前,会发送一封电子邮件到对方的注册邮箱中,表示欢迎.进一步的还可能要求用户点击邮件中的链接,进行注册确认. 下面就让我们先看看如何在Django中发送邮件吧. ...

随机推荐

  1. bzoj 1556 墓地秘密 —— 状压DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1556 预处理出两个障碍四个方向之间的距离(转弯次数),就可以状压DP了: 但预处理很麻烦.. ...

  2. 杂项:ESB接口

    ylbtech-杂项:ESB接口 ESB全称为Enterprise Service Bus,即企业服务总线.它是传统中间件技术与XML.Web服务等技术结合的产物.ESB提供了网络中最基本的连接中枢, ...

  3. Java压缩技术(二) ZIP压缩——Java原生实现

    原文:http://snowolf.iteye.com/blog/642298 去年整理了一篇ZLib算法Java实现(Java压缩技术(一) ZLib),一直惦记却没时间补充.今天得空,整理一下ZI ...

  4. codevs1959拔河比赛(二维费用背包)

    1959 拔河比赛  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold     题目描述 Description 一个学校举行拔河比赛,所有的人被分成了两组,每个人 ...

  5. bzoj 3172 单词

    3172: [Tjoi2013]单词 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 3937  Solved: 1912[Submit][Status ...

  6. Django:提交表单报错:RuntimeError: You called this URL via POST, but the URL doesn’t end in a slash and you have A

    Django:提交表单报错:RuntimeError: You called this URL via POST, but the URL doesn’t end in a slash and you ...

  7. POJ 1753 DFS

    思路: 有过两个裸搜的思路,第一个一个无限TLE,第二个还不慢... 错误思路:迭代加深搜索,枚举翻第几个棋,挂的原因:16的16次方,不挂就怪了. 错误代码见下: #include <cstd ...

  8. C#之调用存储过程

    C#调用存储过程   以下内容可能有错漏之处,请大家多多指教. C#后台代码如下: //调用存储过程的方法public static void Startupworkflow(string first ...

  9. 5.7 Maven通俗讲解

    好的东西只适合ctry+c+v 原文地址:https://blog.csdn.net/shuzhe66/article/details/45009175 Maven通俗讲解 也许是本人不才,初识Mav ...

  10. 关于jquery的clone()和javascript的cloneNode()

    区别: jquery的clone( ),如果是true就是深克隆,把事件都会克隆过去:如果是false,则仅仅克隆的是结构: javascript的cloneNode( ),如果是true,会将子节点 ...