Hello Diez, I, too am in need of a way to load DB values into a SingleSelectField within a GrowingTableFieldSet. I used Alex's method of passing a function working easily on the initial load, but If I am loading a series of existing entries (to edit an existing line item within an order for instance, then I need to load data into the template using some sort of child_arg passing. I was wondering if you had come up with any method?
Thanks, Shane On Aug 2, 2:03 pm, "Diez B. Roggisch" <[email protected]> wrote: > Alex King schrieb: > > > > > > > On Aug 2, 12:14 am, "Diez B. Roggisch" <[email protected]> wrote: > >> Alex King schrieb: > > >>> Following the instructions at > >>>http://www.turbogears.org/2.0/docs/main/ToscaWidgets/forms.html#loadi..., > >>> I have my form loading options from the DB. Great. > >>> Now I want to have a master/detail form (using tw.dynforms) where each > >>> line has a field which needs to load options from the DB. > >>> eg, in controller: > >>> class LineForm(dynforms.GrowingTableFieldSet): > >>> class children(core.WidgetsList): > >>> amount = forms.TextField(validator=forms.validators.Number) > >>> etype = forms.SingleSelectField() > >>> class EntryForm(dynforms.CustomisedForm, forms.TableForm): > >>> action = 'save_entry' > >>> class children(core.WidgetsList): > >>> date = forms.CalendarDatePicker() > >>> description = forms.TextField() > >>> elines = LineForm() > >>> etype = forms.SingleSelectField() > >>> I successfully pass options to the etype selector in my EntryForm > >>> instance from the template: > >>> ${entryform(child_args=dict(etype=dict(options=topts)))} > >>> but I can't find how to pass the same options to the etype selector in > >>> the LineForm instance... > >>> Can anyone point me in the right direction? > >> You need to pass child_args to the elines that contain child_args > >> themselves. > > >> I'm not 100% sure because of the GrowingTableFieldSet, but it's either > >> directly a dict, or a list with a dict with one entry per row. > > >> So either this > > >> entryform.display(child_args=dict(..., > >> elines=dict(child_args=dict(etype=dict(...))) > >> ) > > >> or this: > > >> entryform.display(child_args=dict(..., > >> elines=[dict(child_args=dict(etype=dict(...)), ...]) > >> ) > > >> I presume the latter. > > >> Diez > > > Hmm, > > > The first results in no error, but the options are not loaded, and the > > second a traceback. (Post traceback didn't seem to work.) The > > traceback ends with: > > I had a look myself - and also have to admit being defeated. tw.dynforms > uses a rather complex widget-substructure that makes reaching down to > the actual children complicated, and I failed as well. > > I will see if I can somehow make that easier. > > Diez --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "TurboGears" 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/turbogears?hl=en -~----------~----~----~----~------~----~------~--~---

