Uhm, I'm not aware of a allow_extra_fields option in TW2, anyway your issue
is that you are placing the buttons inside the "buttons" array.
Everything that is there is not considered a child of the form and so is
not validated.

I wrote a quick working example of what you need to do here:
http://runnable.com/UrLSRGgZ5hNlAAFk/turbogears-form-validation-with-action-buttons-for-python


On Wed, Dec 18, 2013 at 2:20 PM, enrico secco <[email protected]>wrote:

> Hi,
> I'm developing an application Turbogears2.2 and I have a lot of form
> developed with Toscawidgets2.
> Now I want to add a button (cancel) to a form.
> I did defined two buttons with the same attribute 'name' and different
> 'value'.
> I did always solved the problem in this manner: same name and specific
> value for any button of the form. When I submit the form return the value
> of the button clicked and I can active the correct action.
> No problems if I not validate. But if I validate the form the 'submit'
> element is not mor in the kw dictionary.
> Here my code:
> ""
> class CommessaForm(tw2.forms.FormPage):
>     entity = Commessa
>     title = 'Commessa'
>     class child(tw2.forms.TableForm):
>     allow_extra_fields = True
>         action = 'commessa_submit'
>         buttons =
> [tw2.forms.SubmitButton(value='Save',name='submit'),tw2.forms.SubmitButton(value='Delete',name='submit')]
>         ...
> ""
>
> with a lot of fileds omissis, and here the parameters passed to the
> 'commessa_submit' method in the kw dictionary:
> {'cliente_id': u'3', 'display_name': u'', 'data_fine': u'31-10-2013',
> 'chiusura': False, 'commessa_name': u'Commessa-2013-10-0', 'data_chiusura':
> '', 'articolo_id': u'', 'azienda_id': u'1', 'numeropezzi': None,
> 'importopezzo': u'', 'data_inizio': u'01-10-2013', 'importo':
> u'100.000000', 'commessa_id': u'81'}
>
> I did also try to add 'commessaform:' string at the name of the button, to
> omogenize the forms names of fileds. But nothing.
>
> But if I look the source of the form all is correct and if I not validate
> all the parameters are correctly in the dictionary:
> {'commessaform:display_name': u'', 'commessaform:numeropezzi': u'',
> 'commessaform:data_fine': u'31-10-2013',* 'commessaform:submit':
> u'Delete'*, 'commessaform:commessa_name': u'Commessa-2013-10-0',
> 'commessaform:cliente_id': u'3', 'commessaform:articolo_id': u'',
> 'commessaform:importopezzo': u'', 'commessaform:azienda_id': u'1',
> 'commessaform:importo': u'100.000000', 'commessaform:data_inizio':
> u'01-10-2013', 'commessaform:commessa_id': u'81'}
>
> How can I obtai to distingue the button pressed?
>
> Thanks for help.
> Best regards Enrico
>
>  --
> You received this message because you are subscribed to the Google Groups
> "TurboGears" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/turbogears.
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/turbogears.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to