小编Dan*_*oza的帖子

Django更改密码而不再记录

在我的系统中,用户首先进入系统并且必须更改其密码.我有一个更改密码的视图,问题是当页面重新加载用户会话时丢失并强制用户再次登录.我不知道如何改变这种行为.我的代码概述

views.py

def change_password(request):
    if request.method == 'POST':
        data = request.body
        change = json.loads(data)
        id = change["id"]
        password = change["password"]
        user = get_object_or_404(CustomUser, pk=id)
        user.set_password(password)
        user.save()
        return HttpResponse('success')

 def login_success(request):
    if request.user.groups.filter(name="group1").exists():
        return redirect(group1)
    elif request.user.groups.filter(name="group2").exists():
        return redirect(group2)
    elif request.user.groups.filter(name="group3").exists():
        return redirect(group3)
    else:
        return redirect(group4)
Run Code Online (Sandbox Code Playgroud)

我正在使用CustomUser模型

models.py

class CustomUser(AbstractBaseUser, PermissionsMixin):

    ...
    login = models.BooleanField(_('login'), default=False, blank=True)    
    ...
Run Code Online (Sandbox Code Playgroud)

在我的模板中.

{% if user.login %}
    <h1>Hi User</h1>

{% else %}

    <form name="changePass" method="post">

    </form> 
{% endif %}
Run Code Online (Sandbox Code Playgroud)

我需要用户在更改密码后仍然保持登录状态,我在模板中做的是更改我的customuser中登录变量的状态.

我感谢任何答案或帮助,谢谢,对不起我的英语.

python django django-models django-views django-users

1
推荐指数
1
解决办法
754
查看次数