[Zope] Re: Uploading photos into newly created objects

Peter Bengtsson peter at fry-it.com
Tue Oct 24 08:01:10 EDT 2006



Tres Seaver wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Peter Bengtsson wrote:
>> I'm trying to upload a Photo into a newly create object in my product
>> class. The code looks something like this::
>>
>> def manage_addSomething(dispatcher, id, title, photofile):
>>     destination = dispatcher.Destination()
>>     instance = Something(id, title)
>>     destination._setObject(id, instance)
>>     obj = destination._getOb(id)
>>     # at this point, is 'obj' wrapped in aq stuff???
>>
>>     _adder = obj.manage_addProduct['Photo'].manage_addPhoto
>>     _adder(id='', title='', file=photofile)
>>
>> class Something(Folder):
>>     def __init__(self, id, title):
>>         self.id = id
>>         self.title = title
>>
>>
>> The error I get is:
>>   File "/home/peterbe/zope/zope285/Products/Photo/Photo.py", line 664,
>> in manage_addPhoto
>>     dest._setObject(id, photo)
>> AttributeError: _setObject
>>
>> I'm using Photo product 1.2.3 but I don't think it matters if it's a
>> Photo I'm trying to add or any other product.
>>
>> If I add the photo after the transaction has been completed in a
>> separate request it works fine to add the photo to the recently created
>> object.
>>
>> Any idea?
> 
> I don't actually use the 'Destination' bit, ever (in fact, I don't
> remember ever even seeing it used).  By inspection (in
> 'App.FacdtoryDispatcher'), it looks as though the metho returns an
> unwrapped object, which would be a Bad Thing.
> 

Using just the dispatcher instead of dispatcher.Destination() didn't 
help but if you recommend, I'll stop using the Destination() thing from 
now on.

The reason _setObject() didn't work was really silly and even embarrasing.
The base class I used was NOT FOLDERISH! :)
In my example I used "Folder" as the base class. In reality I used a 
more oddly named class which confused me.
This happened because it was decided later to add photos into these kind 
of objects.

Thanks for the help Tres!

-- 
Peter Bengtsson,
work www.fry-it.com
home www.peterbe.com
hobby www.issuetrackerproduct.com


More information about the Zope mailing list