首页 > 解决方案 > 用户身份验证 is_active 错误标志在 Django 中不起作用

问题描述

我在views.py中使用is_active标志等于false,所以非超级用户也可以登录,但这不起作用。只有超级用户才能登录。

这里有一些代码

登录逻辑视图:

def logingin(request):
    if request.method == 'POST':
        username = request.POST.get('username','')
        password = request.POST.get('password','')
        user = auth.authenticate(request, username=username, password=password)
        if user is not None:
            login(request, user)
            return redirect('/')     
        else:
            return redirect('/signup')

    return render(request, 'login.html')

注册逻辑视图

def signup(request):
    if request.method == 'POST':
        user_name = request.POST.get('user_name','')
        first_name = request.POST.get('first_name','')
        last_name = request.POST.get('last_name','')
        email = request.POST.get('email','')
        password = request.POST.get('password','')
        if User.objects.filter(email=email).exists():
            messages.error(request, 'E-Mail Already Exist Please Use Different Email')
        else:    
            user = User.objects.create_user(user_name, email, password)
            user.is_active = False
            user.first_name = first_name
            user.last_name = last_name
            user.save()
    return render(request, 'signup.html')

我希望所有用户都可以通过

标签: pythondjango

解决方案


根据定义,该is_active标志用于阻止用户登录。如果您希望所有用户都能登录,请不要将其设置为 false。


推荐阅读