hCaptchahcaptcha
Independent alternative with the same siteverify protocol. Rendered through CaptchaField("hcaptcha"),
like any other form field.
The code
class ContactForm(forms.Form):
name = forms.CharField(max_length=100)
email = forms.EmailField()
message = forms.CharField(widget=forms.Textarea)
captcha = CaptchaField("hcaptcha")
The POST field this widget submits is named by the service, not by the form. Look at
the request payload: the value arrives under
hcaptcha's own field name, and the widget finds it anyway.
See the same provider through the template tag · hCaptcha docs