Thanks...I was thinking along those lines, but wasn't sure if I wanted the overhead. It turns out, the forms may be more stable than I planned, so I might be able to generate them once from the database, and simply re-use them.
On Oct 29, 2:40 am, "Diez B. Roggisch" <[EMAIL PROTECTED]> wrote: > On Monday 29 October 2007 04:18:51 jthibeaux wrote: > > > > > I am fairly new to Turbo Gears, and am trying to work out how best to > > deal with a form that is generating according to values in a database > > -- i.e. I do not know what fields will be there until the a database > > query is performed, and the types of fields may vary as well. > > > In the examples I have seen, it appears that the field set for forms > > is established early on, and typically only the values are set at > > render time. More importantly, when considering validation, it seems > > that all the member_widgets and form fields are set at the class > > level, so the form validation process seems dependent on having the > > member_widgets set up front. > > > Granted, I am sure there are lots of ways to solve this problem, but > > what I am trying to gather is what way would still leverage the form > > validation/widget handling that turbo gears offers. Is there a > > typical way to approach this problem? Have I missed something simple > > that makes this easy? > > Most of the times, the static approach TG usually takes is preferable because > you lose the overhead of widget instantiation. > > But it's perfectly legal & possible to move the form-building code into your > controller method and thus return a dynamically build form. > > The only "issue" there is the validation. If you are ok with a session-based > approach, you could > > - create a dynamic form in a controller > > - stick it in the session > > - return & render it > > - in your action-method, define the @validate-decorator as this: > > @validate(form=get_form_from_session) > > where get_form_from_session looks like this: > > def get_form_from_session(*args): # don't know if it get's any, see for > yourself > return cherrypy.session['my_form_key'] > > Then everything should work as "in the book". > > 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 -~----------~----~----~----~------~----~------~--~---

