即使将user.is_active设置为False,Django也会将用户添加为活动用户

时间:2019-02-18 01:47:15

标签: django python-3.x django-forms

我正在尝试将新用户添加为非活动用户,因此他们将无法在确认其电子邮件之前登录,但是django将新用户添加为活动用户(通过admin帐户查看),即使user.is_active设置为false

def register(request):
if request.method == 'POST':
    form = UserRegisterForm(request.POST)
    if form.is_valid():
        form.save()
        form_data = form.cleaned_data
        username = form_data.get('username')
        raw_password = form_data.get('password1')
        user = authenticate(username=username, password=raw_password)
        user.is_active = False
        if user.is_active == False:
        user.email_confirmed = False

1 个答案:

答案 0 :(得分:0)

do为活动false后,您尚未保存用户对象。因此它始终处于活动状态:

def register(request):
    if request.method == 'POST':
    form = UserRegisterForm(request.POST)
    if form.is_valid():
        form.save()
        form_data = form.cleaned_data
        username = form_data.get('username')
        raw_password = form_data.get('password1')
        user = authenticate(username=username, password=raw_password)
        user.is_active = False
        user.email_confirmed = False
        user.save()
相关问题