quintagroup.z3cform.captcha is a package that allows to add captcha to the z3c.form.
As a result such forms are prevented from automatic submit.
Captchas in a z3c form
Using quintagroup.z3cform.captcha in a z3c.form form is simple. Just add a Captcha
field to your schema, use CaptchaWidgetFactory widget factory for this field and
away you go:
>>> from zope.interface import Interface
>>> from z3c.form import form, field
>>> from quintagroup.z3cform.captcha import Captcha
>>> from quintagroup.z3cform.captcha import CaptchaWidgetFactory
Now define form schema with Captch field
>>> class ICaptchaSchema(Interface):
... captcha = Captcha(
... title=(u'Type the code'),
... description=(u'Type the code from the picture shown below.'))
And set proper widget factory for the captcha field
>>> class CaptchaForm(form.Form):
... fields = field.Fields(ICaptchaSchema)
... fields['captcha'].widgetFactory = CaptchaWidgetFactory
and z3c.form will take care of the rest. The widget associated with this field will
render the captcha and verify the use input automatically.
|