我需要plone默认用户注册表单(@@register
)中的验证码字段。
答案 0 :(得分:4)
使用https://plone.org/products/quintagroup.formlib.captcha
解决from mypackage import myMessageFactory as _
from quintagroup.formlib.captcha import Captcha
from quintagroup.formlib.captcha import CaptchaWidget
from plone.app.users.browser.register import RegistrationForm
from zope.interface import Interface
from zope.formlib import form
class ICaptchaSchema(Interface):
captcha = Captcha(
title=_(u'Prevent spam'),
description=_(
u'Type the text in the picture.'
),
)
class CustomRegistrationForm(RegistrationForm):
""" Custom registration form
"""
@property
def form_fields(self):
fields = super(CustomRegistrationForm, self).form_fields
fields += form.Fields(ICaptchaSchema)
fields['captcha'].custom_widget = CaptchaWidget
return fields