Реализация рекапчи в Django - PullRequest
       20

Реализация рекапчи в Django

1 голос
/ 05 августа 2020

Я пытаюсь добавить рекапчу в форму отзыва. Я создал учетную запись и правильно указал секретные / publi c ключи. Проблема, с которой я столкнулся, заключается в том, что когда я go отправляю форму, мой views.py получает ответ None и недопустимый-input-response.

из-за этого мой обзор не создается погода я нажимаю «я не робот» или нет.

это лог c для проверки рекапчи в представлениях

def create_review(request):
    if request.method == 'POST':

        ''' Begin reCAPTCHA validation '''
        recaptcha_response = request.POST.get('g-recaptcha-response')
        url = 'https://www.google.com/recaptcha/api/siteverify'
        values = {
            'secret': settings.RECAPTCHA_PRIVATE_KEY,
            'response': recaptcha_response
        }

        data = urllib.parse.urlencode(values).encode()
        req =  urllib.request.Request(url, data=data)
        response = urllib.request.urlopen(req)
        result = json.loads(response.read().decode())
        ''' End reCAPTCHA validation '''

        print(values)
        print(result)
        if result['success']:
            print(result['success'])
            name = request.POST.get('name')
            rating = request.POST.get('rating')
            message = request.POST.get('message')
            
            review = Testimonial(name=name, rating=rating, message=message)
            review.save()

Это переменные, которые печатаются

{'secret': 'private_key', 'response': None}
{'success': False, 'error-codes': ['invalid-input-response']}

это html в моей html форме

<div class="g-recaptcha" data-sitekey="public_site_key"></div>

Любая помощь приветствуется. Спасибо.

...