[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