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

Reply via email to