Как проверить форму Captcha в Django

как проверить форму капчи в django?

forms.py:

from django import forms
from captcha import fields
class Cap(forms.Form):
    cap=fields.CaptchaField()

функция рендеринга шаблона в представлениях :

def cap(request:HttpRequest):
    return render(request,"cap.html",{"form":Cap})

шаблон :

    <form action="" method="post">
        {% csrf_token %}
        {{form.cap}}
        <button type="submit">Submit!</button>
    </form>

где использовать функцию form.is_valid() в представлениях?

def clean(self):
    cleaned_data = super().clean()

    google_recaptcha_token = cleaned_data.get('g-recaptcha-response')
    if not google_recaptcha_token:
       raise ValidationError("Captcha Verficiation not submitted.")
    recaptha_status = json.loads(
       requests.post('https://www.google.com/recaptcha/api/siteverify',
                data={
                    'secret': settings.GOOGLE_RECAPTCHA_SECRET_KEY,
                    'response': google_recaptcha_token}).text
        )
    if recaptha_status['success'] == False or recaptha_status['success'] < 0.5:
       raise ValidationError("Captcha Verficiation failed.")
Вернуться на верх