Thanks to both of you for the response. It makes better sense now.
-Jim
Glauco wrote:
> Jim Steil ha scritto:
>
>> Hi
>>
>> I'm having a problem with a SingleSelectField. It's probably more of a
>> problem with my understanding of when things are loaded, but I was
>> hoping someone could explain this to me a bit.
>>
>> I have the following form:
>> ------------------------------------------------
>> class FormFields(WidgetsList):
>> name = TextField(label='Name:', validator=validators.NotEmpty)
>> district = SingleSelectField(label='District:',
>> options=qOptions.getDistrictOptions('None'),
>>
>> validator=validators.All(validators.NotEmpty(), validators.Int()))
>> testForm = TableForm(fields=FormFields(), submit_text='Save Changes')
>> ------------------------------------------------
>> And, I have the following method to fill the SingleSelectField in the
>> qOptions module:
>> ------------------------------------------------
>> def getDistrictOptions(allNone='None'):
>> ds = District.select(orderBy='name')
>> options = [('', '-- %s --' % (allNone))]
>> for d in ds:
>> name = d.name
>> if d.salesman:
>> name = '%s - %s' % (name, d.salesman.display_name)
>> options.append((d.id, '%s' % (name)))
>> return options
>> ------------------------------------------------
>> This works fine, except if I make a change to the salesman assigned to a
>> district. If I do, I still get the old salesman name in the dropdown
>> even though it has been changed. If I restart the server I then get the
>> correct salesman name. I use this pattern all over in my application,
>> but without the foreign key lookup and getting the name from the related
>> table. In these SingleSelectFields, changes to the table takes effect
>> immediately and doesn't require a restart.
>>
>> Can someone help me understand why this is happening?
>>
>>
>
> Simple Jim...
> you pass the result of a callable as options.
>
> options=qOptions.getDistrictOptions('None')
>
>
> try to pass the callable instead
>
> options=qOptions.getDistrictOptions
>
>
> this is the correct use for dynamic select list.
>
>
>
> Glauco
>
>
>
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---