badfrog schrieb:
> Hello again, and thanks for everyone's kind attention to my previous
> dumb questions :)
>
> I'm coming to TG from ASP.NET, which means I love Data Binding, and I
> know Python/TG would make binding a dropdown/combo list to a dynamic
> set of data really easy, but I'm struggling in figuring it out.
>
> Assuming I have a State model defined with abbreviation and name
> fields, how would I build a US states drop down list? Following the
> Toolbox SingleSelectField widget example, I've experimentally tried:
>
> states = State.select()
> list = widgets.SingleSelectField(options=states)
>
> but apparently either SQLObject isn't a list or select's result isn't
> a tuple:
>
> File "c:\python24\lib\site-packages\TurboGears-1.0.3.2-py2.4.egg
> \turbogears\wi
> dgets\forms.py", line 882, in _extend_options
> if (len(opts) > 0) and not isinstance(opts[0], (tuple,list)):
> TypeError: len() of unsized object
>
> I know I could iterate over states myself and build a tuple of lists,
> but I'm lazy -- is there a way to tell SingleSelectField "for each
> object, use these results and use this property as your value and this
> property as your text"?
No. And it's so trivial, that you can write it in a split-second
yourself, tailored to specific needs:
def prop_list(objects, attribute, sorted=True):
res = [(o.id, getattr(o, attribute)) for o in objects]
if sorted:
if not callable(sorted):
sorted = lambda v: v[1]
res.sort(key=sorted)
return res
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
-~----------~----~----~----~------~----~------~--~---