[Zope] Re: Uploading photos into newly created objects
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
>> 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
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
Thanks for the help Tres!
More information about the Zope