Although you may be able to do this, captcha is not a widget because
as pointed out it is not a field.
This is the best way.
form[0].append(TR('',captcha, ''))
Massimo
On Nov 21, 12:39 pm, Thadeus Burgess <[email protected]> wrote:
> I will do this in functions, so resources only get allocated if needed.
>
> def captcha_form():
> return SQLFORM.factory(db.table.field1, db.table.field2,
> Field("anti_spam", widget=captcha, default='')
> def normal_form():
> return SQLFORM(db.table)
>
> if docaptcha:
> form = captcha_form()
> else
> form = normal_form()
>
> Still having a problem with using recaptcha inside of ajax_trap. It works in
> plug-ins as long as ajax_trap or ajax are false.
>
> -Thadeus
>
> On Sat, Nov 21, 2009 at 12:26 PM, mr.freeze <[email protected]> wrote:
>
> > I know what you mean. I don't think it's possible as the form is
> > built SQLFORM's __init__ function. You might have some luck
> > dynamically building a collection of fields then passing them like so:
>
> > form = SQLFORM.factory(*fields)
>
> > On Nov 21, 11:56 am, Thadeus Burgess <[email protected]> wrote:
> > > Mainly because I really get agitated when I have to do silly things such
> > as
>
> > > if do_captcha:
> > > form = SQLFORM.factory(db.table.field1, db.table.field2,
> > > db.table.field3, Field('anti_spam', widget=captcha, default=''))
> > > else:
> > > form = SQLFORM(db.table)
>
> > > -Thadeus
>
> > > On Sat, Nov 21, 2009 at 11:49 AM, Thadeus Burgess <[email protected]
> > >wrote:
>
> > > > How do you append a Field() to SQLFORM? Does not look like it is
> > possible.
>
> > > > -Thadeus
>
> > > > On Sat, Nov 21, 2009 at 11:47 AM, Thadeus Burgess <
> > [email protected]>wrote:
>
> > > >> I believe it is the way that SQLFORM looks for data in request.vars.
>
> > > >> It will look for a var with the name of the field...
>
> > > >> so
>
> > > >> Field('recaptcha', widget=captcha)
>
> > > >> It is expecting a request.vars.recaptcha, which does not exist.
>
> > > >> You're right, setting default does fix it, sounds like a bug...
>
> > > >> So it seems that by setting a default, it is allowing SQLFORM to
> > proceed,
> > > >> even though it is not getting anything from request.vars.
>
> > > >> I even tried setting the field name to recaptcha_response_field with
> > no
> > > >> luck, but the default trick works! Lol you're awesome Freeze
>
> > > >> -Thadeus
>
> > > >> On Sat, Nov 21, 2009 at 11:34 AM, mr.freeze <[email protected]>
> > wrote:
>
> > > >>> uld be able to create a form using SQLFORM(db.table) and then
> > > >>> > insert the recaptcha field aft
>
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---