I am trying to work with a SingleSelectField in a WidgetsList in a
TableForm.
When I have the following in the WidgetsList:
owner = SingleSelectField(name = 'Eigenaar',
options = ownerOptions,
default = 3)
The right default value is displayed, but the field is not updated. This
because the save function is called with a value for 'Eigenaar' and not for
'owner'.
The values given to the save function:
{'afternoonFood': u'dinner', 'notes': u'Wil graag geknuffeld worden',
'description': u'middelgrote bruin/witte vuilnisbak', 'name': u'Pedro',
'eveningFood': None, 'Eigenaar': 3, 'morningFood': u'brokken'}
When I have the following code:
owner = SingleSelectField(name = 'owner',
label = 'Eigenaar',
options = ownerOptions,
default = '3')
I can update the owner field, but there is no default set and initially the
first value is always displayed.
The values given to the save function:
{'afternoonFood': u'dinner', 'notes': u'Wil graag geknuffeld worden',
'description': u'middelgrote bruin/witte vuilnisbak', 'name': u'Pedro',
'owner': 3, 'eveningFood': None, 'morningFood': u'brokken'}
What do I need to do to get the right default and have the possibility to
save the owner. One possibility is offcourse to set the value of 'owner' to
the value of 'Eigenaar in the save function, but I expect that there is a
better way.
The complete class:
#####
class DogFields(WidgetsList):
name = TextField(label = 'Naam *',
validator = validators.NotEmpty)
description = TextField(label = 'Omschrijving')
sex = EnumCol( label = 'Geslacht')
morningFood = TextField(label = 'Ochtendvoer')
afternoonFood = TextField(label = 'Middagvoer')
eveningFood = TextField(label = 'Avondvoer')
notes = TextField(label = 'Opmerkingen')
owner = SingleSelectField(label = 'Eigenaar',
name = 'owner',
options = ownerOptions,
default = 3)
#####
Function to fill options:
#####
def ownerOptions():
return [(-1, 'Selecteer Eigenaar')] +\
[(entry.id, entry.firstName +\
' ' + entry.lastName +\
' uit ' + entry.place) for entry in Owner.select()]
#####
code in the edit function:
#####
record = Dog.get(int(id))
form = TableForm(
fields = DogFields(),
method = 'POST'
)
values = dict(owner = record.owner, Eigenaar = record.owner)
return dict(form = form,
page = 'edit',
record = record,
table = table,
values = values)
#####
I would like to have record.owner as the default instead of the hardcoded 3.
How do I do that?
--
Cecil Westerhof
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---