[Zope] Error Value: can't pickle function objects
mohamed at your-site.com
Fri May 28 14:35:11 EDT 2004
I am learning more and more... getting there :)
Thanks a lot Alec.
--On Friday, May 28, 2004 11:07 AM -0700 Alec Mitchell <apm13 at columbia.edu>
> On Friday 28 May 2004 10:15 am, Mohamed Lrhazi wrote:
>> When I replace :
>> self.domain = self.ddb.getDomain(REQUEST['YSURLARGS'])
>> with this:
>> domain = self.ddb.getDomain(REQUEST['YSURLARGS'])
>> It works.
>> "domain" above is an instance of a class called Domain, I defined it in a
>> module that lives in /usr/local/zope/lib/python/YSDomain and that does
>> not implement nor extend any Zope classes or interfaces...
>> Why does instantiating such an object inside my zope application cause
>> "can't pickle function objects" error?
> By setting self.domain you are causing the 'domain' instance to be stored
> in the ZODB, as an attribute of your persistent class. There is
> apparently some aspect of that 'domain' instance which is not picklable.
> Unless you really wanted to store/update an instance of that class in
> the ZODB as an attribute of your Zope object every time you called
> index_html, the second method is certainly best. Updating that
> attribute on every call could result in tremendous database bloat.
> Actually, it seems pretty strange that you are setting any instance
> attributes during the index_html call, which one wouldn't normally
> expect to have any side effects.
> Alec Mitchell
More information about the Zope