Use <dtml-with "PARENTS[0]" only> or something like that. Just as long as you keep the 'only' argument. This turns of aquisistion for a while. To do it in Python you are obliged to do it in an External Method (not a Python Script). Dieter Maur contributed with this hack. def hasattr_itself(object,attribute): """return true iff *object* itself has attribute *attribute*.""" base= getattr(object,'aq_base',object) return hasattr(base,attribute) But maybe it's worth trying first. In a Python Script: if hasattr(context.folder2.aq_explicit, 'default_en'): Note the .aq_explicit Peter ----- Original Message ----- From: "Martin Stötzel" <martin@stoetzel.com> To: <zope@zope.org> Sent: Tuesday, May 29, 2001 10:17 AM Subject: [Zope] Avoid or supress heredity
Hi all,
I have been trying and trying - but I could not find out: The problem is that I want to check if a certain file (method) exists in a folder, and if not, display another method.
I am talking about a 'default_en' which should be displayed if it is in a folder and a 'default' which exists in each folder and should be displayed otherwise.
To make this clear:
root: default default_en + folder1 - default + folder2 - default - default_en
OK, everything works, exept in folder1. I check if a 'default_en' is there, otherwise display 'default'. But what happens is that because of heredity the 'default_en' from the root is found and displayed.
The code is simple:
<dtml-if "'default_en' in objectIds('DTML Method')"> <dtml-var default_en> <dtml-else> <dtml-var default> </dtml-if>
Does anybody know how I could display the 'default' in folder1? (I mean, with the functionality I want)
Thanks. Martin
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )