@awd10
джанго ученик

Как подключить recaptcha2 к джанго?

Установил приложение https://github.com/kbytesys/django-recaptcha2
Настроил по докам. Добавил свою форму:

from recaptcha2.fields import ReCaptchaField
from recaptcha2.widgets import ReCaptchaWidget

class CaptchaForm(forms.Form):
    captcha = ReCaptchaField(
        widget=ReCaptchaWidget(),
        label='',
    )


При активации, она работает на стороне клиента. Проблема начинается, когда я хочу в views.py делать проверку.

if request.POST:
            auth_form = AuthForm(request, request.POST)
            captcha_form = CaptchaForm(request, request.POST)
            username = request.POST.get('username')
            password = request.POST.get('password')
            user = auth.authenticate(username=username, password=password)
            #  if user is not None and auth_form.is_valid():
            if captcha_form.is_valid():
                auth.login(request, user)
                return HttpResponseRedirect('/')
            else:
                context['login_error'] = True
                return render(request, 'index.html', context)
        else:
            return render(request, 'index.html', context)


Форма еще в тестовом режиме. Простая авторизация работает, а captcha_form.is_valid() выдает ошибку:
AttributeError at /auth/
'WSGIRequest' object has no attribute 'get'
  • Вопрос задан
  • 1193 просмотра
Решения вопроса 1
sim3x
@sim3x
Так делать не нужно
#
            username = request.POST.get('username')
            password = request.POST.get('password')

Нужно использовать встроенный функционал форм
https://docs.djangoproject.com/en/1.10/ref/forms/a...

Также следует вставить поле с капчей в AuthForm

Если где-то в другом месте используется docs.python-requests.org то его нужно испортировать именно так
import requests

И он не имеет никакого отношения к джанговскому request
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@devel787
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы