James Allwyn wrote:
I too have been getting "UnpickleableError" while playing with ObjectWidgets.
Hi James,
What I ended up doing was to move the removeSecurityProxy from the
Content Type Class to the Browser View (where I think it belongs).
(In my case this would be an overriden version of ObjectWidget)
The method applyChanges was override ang changed to include the
removeSecurityProxy. (see below)
For your example you would have to create a PersonWidget and a
PageWidget (copy the applyChanges from ObjectWidget and change
so the security is removed before saving).
(The classes might end-up looking the same, som maybe you only
need one?)
But I'm now suspecting the real problem is due to a misconfiguration
in ZCML. I'll let you know what I find out.
Regards,
johan
class FileWidget(ObjectWidget):
def applyChanges(self, content):
field = self.context
# create our new object value
value = field.query(content, None)
if value is None:
# TODO: ObjectCreatedEvent here would be nice
value = self.factory()
# apply sub changes, see if there *are* any changes
# TODO: ObjectModifiedEvent here would be nice
changes = applyWidgetsChanges(self, field.schema, target=value,
names=self.names)
# if there's changes, then store the new value on the content
if changes:
file=removeSecurityProxy(value)
form = self.request.form
filename = getattr(form["field.file.data"], "filename", None)
contenttype = form.get("field.file.contentType")
if filename:
if not contenttype:
contenttype =
content_types.guess_content_type(filename)[0]
file.contentType=contenttype
#descriptor = objectevent.Attributes(IFile, "contentType")
#descriptor.attributes += "data"
#event = objectevent.ObjectModifiedEvent(file, descriptor)
#zope.event.notify(event)
field.set(content, file)
return changes
fw = CustomWidgetFactory(FileWidget, File )
--
Johan Carlsson Tel: + 46 8 31 24 94
Colliberty Mob: + 46 70 558 25 24
Torsgatan 72 Email: [EMAIL PROTECTED]
SE-113 37 STOCKHOLM
_______________________________________________
Zope3-users mailing list
[email protected]
http://mail.zope.org/mailman/listinfo/zope3-users