[Zope] Re: Question about dot in method name
Martijn Jacobs
martijn at fourdigits.nl
Thu Mar 27 15:24:06 EDT 2008
Hmm, that's strange.
Maybe if you call the __getitem__ function itself? :
return Folder.__getitem__(self, key)
It should be working though....
> __getitem__ raise an exception :
> *Error Type: AttributeError*
> *Error Value: 'super' object has no attribute '__getitem__'
>
> my class derive from
> (ObjectManager, BTreeFolder2, PropertyManager):
> I test :
> ** (ObjectManager, Folder PropertyManager):*
> **and got the same exception
>
> the method of Sascha is working (This is a satisfaction). but i'm
> very interesting to understand the method proposed by Martijn.
>
>
> Martijn Jacobs a écrit :
>> Hi Stéphane.
>>
>> Check out
>> http://www.zope.org/Documentation/Books/ZDG/current/ObjectPublishing.stx
>>
>> See the heading "Traversal methods" where this is explained.
>>
>>
>>
>> Martijn.
>>> Great, I should test this code tonight !
>>> some more question : id don't understand the two different usage of
>>> __getitem__
>>> and __bobo_traverse__. __bobo_traverse__ seems to be a way to control
>>> url walk and __getitem__ control the way attributs can be load by zope.
>>>
>>> If I change the URL when I use __bobo_traverse__ it works, and if I
>>> change the way
>>> I'm searching attributs in zope object tree it works too. Is it
>>> correct ?
>>>
>>>
>>> 2008/3/26, Martijn Jacobs <martijn at fourdigits.nl
>>> <mailto:martijn at fourdigits.nl>>:
>>>
>>>
>>> If you have a zope product you can do something like this indeed :
>>>
>>> class MyContainer(Folder):
>>> """My Folderish Product"""
>>>
>>> def mydoc_xls(self, REQUEST=None):
>>> """My new xls method"""
>>> return "My new xls method"
>>>
>>> def __getitem__(self, key):
>>> """Check for mydoc.xls, then return mydoc_xls"""
>>> if key == 'mydoc.xls':
>>> return self.mydoc_xls
>>> return super(Folder, self).__getitem__(key)
>>>
>>>
>>>
>>>> Hi!
>>>> Hey, Tres, could you point us to a web example or a web page
>>>> with more information about that technique?
>>>> I'm very interested on it and the technique that was introduced
>>>> sometime ago about how to return a string as __bobo_traverse__
>>>> response but the example was uncompleted (for me at least)
>>>>
>>>> This kind of information was very useful for many of us but
>>>> there are no good tutorial or how-to
>>>>
>>>> Thanks a lot!
>>>>
>>>> 2008/3/26, Tres Seaver <tseaver at palladion.com
>>>> <mailto:tseaver at palladion.com>>:
>>>>
>>>> -----BEGIN PGP SIGNED MESSAGE-----
>>>> Hash: SHA1
>>>>
>>>>
>>>> Martijn Jacobs wrote:
>>>> > Maybe a simple solution :
>>>> >
>>>> > Do you use apache as a frontend for your zope? If you do
>>>> you can rewrite
>>>> > the incoming url's for example like this :
>>>> >
>>>> > RewriteEngine On
>>>> > RewriteRule ^/folder/mydoc.xls(.*)
>>>> >
>>>> http://localhost:8080/VirtualHostBase/http/myIntranet/object_in_zope/VirtualHostRoot/mydoc_xls$1
>>>>
>>>> > [L,P]
>>>>
>>>>
>>>> Or add a '__getitem__' to your class that looks for that key
>>>> and returns
>>>> the right method.
>>>>
>>>>
>>>> Tres.
>>>> - --
>>>>
>>>> ===================================================================
>>>> Tres Seaver +1
>>>> 540-429-0999 tseaver at palladion.com
>>>> <mailto:tseaver at palladion.com>
>>>> Palladion Software "Excellence by
>>>> Design" http://palladion.com
>>>> -----BEGIN PGP SIGNATURE-----
>>>> Version: GnuPG v1.4.6 (GNU/Linux)
>>>> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>>>>
>>>>
>>>> iD8DBQFH6ZfK+gerLs4ltQ4RAgdjAJ9bwmIjAbqkG1YKUyrgbKSG47FlXgCdHW+P
>>>> GzL6mjcA1K8t9Q/5Y75tfF4=
>>>> =mySN
>>>> -----END PGP SIGNATURE-----
>>>>
>>>>
>>>> _______________________________________________
>>>> Zope maillist - Zope at zope.org <mailto:Zope at 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 )
>>>>
>>>>
>>>>
>>>>
>>>> -- Mis Cosas
>>>> http://blogs.sistes.net/Garito
>>>> Zope Smart Manager
>>>> http://blogs.sistes.net/Garito/670
>>>>
>>>> ------------------------------------------------------------------------
>>>>
>>>>
>>>> _______________________________________________
>>>> Zope maillist - Zope at zope.org <mailto:Zope at 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 )
>>>>
>>>>
>>>
>>>
>>> -- Martijn Jacobs
>>> Four Digits, Internet Solutions
>>>
>>> a: Willemsplein 15-1 6811 KB Arnhem NL kvk: 091621370000 |
>>> btw: 8161.22.234.B01
>>> e-mail: martijn at fourdigits.nl <mailto:martijn at fourdigits.nl> |
>>> web: http://www.fourdigits.nl
>>>
>>> tel: +31 (0)26 44 22 700 | fax: +31 (0)84 22 06 117
>>>
>>> _______________________________________________
>>> Zope maillist - Zope at zope.org <mailto:Zope at 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 )
>>>
>>>
>>
>>
>> --
>> Martijn Jacobs
>> Four Digits, Internet Solutions
>>
>> a: Willemsplein 15-1 6811 KB Arnhem NL kvk: 091621370000 | btw:
>> 8161.22.234.B01
>> e-mail: martijn at fourdigits.nl | web: http://www.fourdigits.nl
>> tel: +31 (0)26 44 22 700 | fax: +31 (0)84 22 06 117
>
--
Martijn Jacobs
Four Digits, Internet Solutions
a: Willemsplein 15-1 6811 KB Arnhem NL
kvk: 091621370000 | btw: 8161.22.234.B01
e-mail: martijn at fourdigits.nl | web: http://www.fourdigits.nl
tel: +31 (0)26 44 22 700 | fax: +31 (0)84 22 06 117
More information about the Zope
mailing list