Read the documentation

Local Math Captchamath

A small sum solved locally. No third party, no network call, no cookie. Rendered through CaptchaField("math"), 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("math")

The POST field this widget submits is named by the service, not by the form. Look at the request payload: the value arrives under math's own field name, and the widget finds it anyway.

See the same provider through the template tag · Package docs