handle form values correctly when form is re-displayed because of an error

This commit is contained in:
Helmut Merz 2012-09-25 16:59:01 +02:00
parent 32171a4e2d
commit 8acf5d8a65
2 changed files with 7 additions and 2 deletions

View file

@ -159,7 +159,11 @@ class ObjectForm(NodeView):
for k, v in data.items(): for k, v in data.items():
#overwrite data with values from request.form #overwrite data with values from request.form
if k in self.request.form: if k in self.request.form:
data[k] = toUnicode(form[k]) field = self.schema.fields.get(k)
if field:
fi = field.getFieldInstance(self.instance)
data[k] = fi.marshall(fi.unmarshall(form[k]))
#data[k] = toUnicode(form[k])
return data return data
@Lazy @Lazy

View file

@ -89,7 +89,8 @@ class RelationFieldInstance(FieldInstance, BaseRelationFieldInstance):
def marshall(self, value): def marshall(self, value):
if value: if value:
return dict(title=value.title, uid=util.getUidForObject(value.context)) return dict(title=value.title,
uid=util.getUidForObject(baseObject(value)))
def display(self, value): def display(self, value):
if value: if value: