修改用户信息

request.user 拿到已登陆的用户实例

instance = user 拿到用户以及数据

前端页面:

点击修改密码页面:  
 <li class="cl-effect-11"><a href="{% url 'logout' %}" data-hover="退出">退出</a></li>
    <li class="cl-effect-11"><a href="{% url 'users:edit' %}" data-hover="修改密码">修改密码</a></li>
{% else %}
    <li class="cl-effect-11"><a href="{% url 'login' %}?next={{ request.path }}" data-hover="登陆">登陆</a></li>
    <li class="cl-effect-11"><a href="{% url 'users:register' %}?next={{ request.path }}" data-hover="注册">注册</a></li>
{% endif %}

修改密码页面:

    

<!DOCTYPE html>
{% load crispy_forms_tags %}
<html lang="zh-cn">
<head>
    <meta charset="utf-8">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title>修改密码</title>
    <link rel="stylesheet" href="https://unpkg.com/mobi.css/dist/mobi.min.css">
    <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
    <style>
        .errorlist {
            color: red;
        }
    </style>
</head>
<body>
<div class="flex-center">
    <div class="container">
        <div class="flex-center">
            <div class="unit-1-2 unit-1-on-mobile">
                <h1><a href="{% url 'blog:index' %}">千峰博客</a></h1>
                <h3>修改密码</h3>
                {% include 'snippet/message.html' %}
                <form class="form" action="" method="post">
                    {% csrf_token %}
                    {#                    {{ form.non_field_errors }}#}
                    {#                    {% for field in form %}#}
                    {#                        {{ field.label_tag }}#}
                    {#                        {{ field }}#}
                    {#                        {{ field.errors }}#}
                    {#                        {% if field.help_text %}#}
                    {#                            <p class="help text-small text-muted">{{ field.help_text|safe }}</p>#}
                    {#                        {% endif %}#}
                    {#                    {% endfor %}#}
                    {{ form |crispy }}
                    <button type="submit" class="btn btn-primary btn-block">确认修改</button>
                    <input type="hidden" name="next" value="{{ next }}"/>
                </form>
                <div class="flex-left top-gap text-small">
                    <div class="unit-2-3"><span>没有账号?<a href="{% url 'users:register' %}">立即注册</a></span></div>
                    <div class="unit-1-3 flex-right"><span><a href="{% url  'password_reset' %}">忘记密码?</a></span></div>
                </div>
            </div>
        </div>
    </div>
</div>
    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</body>
</html>

路由:

from django.conf.urls import url
from .views import register, edit

app_name = 'users'
urlpatterns = [
    url(r'^register/$', register, name='register'),
    url(r'^edit/$', edit, name='edit'),
]

视图函数:    

# 修改用户信息
def edit(request):
    user = request.user
    form = registerForm(instance=user)
    if request.method == 'POST':
        form = registerForm(request.POST, instance=user)
        if form.is_valid():
            form.save()
            messages.success(request, '密码修改成功!')
            return redirect(reverse('login'))
    return render(request, 'users/edit.html', {'form': form})

    

猜你喜欢

转载自blog.csdn.net/yx1179109710/article/details/81364726
今日推荐