I want to be able to intercept PUT requests to Zope to store objects outside of the ZODB by storing the body of the PUT request in an SQL database. I've written a PUT_factory external method that calls the function PUT_ParameterFile defined below:
========== [...boilerplate Zope imports...] class ParameterFile(Implicit): security = ClassSecurityInfo() security.declareObjectPublic() security.setDefaultAccess("allow") def __init__(self, context, job_batch_id, body): self.context = context self.job_batch_id = job_batch_id self.body = body def PUT(self, REQUEST, RESPONSE): self.context.SQL_UpdateJobBatchParameterFile( job_batch_id=self.job_batch_id, parameter_file=self.body) RESPONSE.setStatus(204) return RESPONSE def PUT_ParameterFile(self, name, typ, body): if typ == "text/plain": return ParameterFile(self, name, body) ============= The ParameterFile.PUT method is being called, but then Zope returns w/ the error "Can't pickle <extension class __builtin__.ParameterFile at 72918728>: attribute lookup __builtin__.ParameterFile failed". Why is Zope trying to pickle the ParameterFile object when it's handling PUT itself? TIA, John _______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )