Как активировать пользователя, когда он подтверждает свой номер телефона с помощью Twilio в Django? Если пользователь не верифицирован, как деактивировать пользователя?

Как активировать пользователя, когда пользователь верифицирует свой номер телефона с помощью Twilio в Django? Если пользователь не верифицирован, как деактивировать пользователя?

Вот мой код.

в файле forms.py

class CreateUserForm(UserCreationForm):
    email = forms.EmailField()
    phone = forms.CharField(max_length=17)
    country_code = forms.CharField(max_length=3, initial='+19')

    class Meta:
        model = User
        fields = ['username', 'email', 'phone', 'password1', 'password2']

в файле views.py

def signupPage(request):
form = CreateUserForm()

# if request.method == 'GET':
#     return render(request, 'user/signup.html')

if request.method == 'POST':
    form = CreateUserForm(request.POST)
    if form.is_valid():
        user = form.save(commit=False)
        user.is_active = False
        user.save()

        # ====================================

        request.session['phone'] = form.cleaned_data['phone']
        request.session['country_code'] = form.cleaned_data['country_code']
        authy_api.phones.verification_start(
            form.cleaned_data['phone'],
            form.cleaned_data['country_code'],
        )
        return redirect('token_validation')

        # ====================================

context = {'form': form}
return render(request, 'user/signup.html', context)

в файле views.py

Есть ли проблемы в функции token_validation?

def token_validation(request):
if request.method == 'POST':
    form = TokenForm(request.POST)
    if form.is_valid():
        verification = authy_api.phones.verification_check(
            request.session['phone'],
            request.session['country_code'],
            form.cleaned_data['token']
        )
        if verification.ok():
            request.session['is_verified'] = True
            messages.info(request, 'Your Phone Number is Verified, Please Enter Your Information.')
            user.is_active = True
            user.save()
            return redirect('verified')

        else:
            for error_msg in verification.errors().values():
                form.add_error(None, error_msg)
else:
    form = TokenForm()
return render(request,'user/token_validation.html', {'form': form})

Здесь я получаю ошибку user.is_active = True NameError: name 'user' is not defined когда я пытаюсь сделать пользователя снова активным. Как сделать пользователя снова активным, когда пользователь проверяет свой токен.

Здесь евангелист-разработчик Twilio.

Каждый запрос имеет свой собственный контекст, поэтому в запросе к token_validation ваша предыдущая ссылка на user уже не существует.

Вы должны сохранить ID пользователя в сессии, вместе с номером телефона и кодом страны, а затем загрузить пользователя из базы данных, используя этот ID.

Вернуться на верх