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
-~----------~----~----~----~------~----~------~--~---

Reply via email to