Django Recaptcha возвращает ошибку присваивания

Я пытаюсь реализовать Django Recaptcha с помощью этого пакета: https://github.com/praekelt/django-recaptcha

Это мой forms.py

class SignupForm(forms.ModelForm):
    captcha = ReCaptchaField(widget=ReCaptchaV2Invisible)
    name = forms.CharField(widget=forms.TextInput)
    lastname = forms.CharField(widget=forms.TextInput)
    password = forms.CharField(
        widget=forms.PasswordInput)

    confirmpassword = forms.CharField(
        widget=forms.PasswordInput
    )
    email = forms.EmailField(
        error_messages={
            'unique': pgettext_lazy(
                'Registration error',
                'This email has already been registered.')})

Согласно документации или как я ее видел, это все, что требуется. Но почтовый запрос формы не работает. Я получаю это сообщение в журналах моего сервера:

UnboundLocalError: локальная переменная redirect_url, на которую ссылается перед назначением

Сообщение об ошибке ссылается на мой код views.py (redirect_url = LOGIN_URL), который находится ниже:

def signup(request):
    form = SignupForm(request.POST or None)
    if form.is_valid():
        form.save(request)
        if settings.EMAIL_VERIFICATION_REQUIRED:
            msg = 'User has been created. Check your e-mail to verify your e-mail address.'
            messages.success(request, msg)
            redirect_url = LOGIN_URL
        else:
            password = form.cleaned_data.get('password')
            email = form.cleaned_data.get('email')
            user = auth.authenticate(
                request=request, email=email, password=password)
            if user:
                auth.login(request, user)
            messages.success(request, _('User has been created'))
            redirect_url = request.POST.get('next', settings.LOGIN_REDIRECT_URL)
        return redirect(redirect_url)
    ctx = {'form': form}
    return TemplateResponse(request, 'account/signup.html', ctx)

Я должен добавить, что добавил свои ключи recapctcha в settings.py

Любая помощь очень ценится.

ОБНОВЛЕНО: полное сообщение об ошибке по запросу:

> ERROR django.request Internal Server Error: /signup/
> [PID:33:MainThread] Traceback (most recent call last):   File
> "/usr/local/lib/python3.6/dist-packages/django/core/handlers/exception.py",
> line 35, in inner
>     response = get_response(request)   File "/usr/local/lib/python3.6/dist-packages/django/core/handlers/base.py",
> line 128, in _get_response
>     response = self.process_exception_by_middleware(e, request)   File "/usr/local/lib/python3.6/dist-packages/django/core/handlers/base.py",
> line 126, in _get_response
>     response = wrapped_callback(request, *callback_args, **callback_kwargs)   File "/usr/local/lib/python3.6/dist-packages/django/views/decorators/csrf.py",
> line 54, in wrapped_view
>     return view_func(*args, **kwargs)   File "/var/www/html/applications/py/saleor/cart/utils.py",
> line 103, in func
>     response = view(request, *args, **kwargs)   File "/var/www/html/applications/py/saleor/core/views.py",
> line 51, in signup
>     return JsonResponse({'redirect_url': redirect_url, "status": True}) UnboundLocalError: local variable 'redirect_url' referenced
> before assignment

0 ответов

Другие вопросы по тегам