Deutsche Zope User Group
Gast 3 Benutzer online
DZUG-News

Folder erkennen

Frage:

Wie kann ich feststellen, ob es sich bei einem Objekt um einen Folder oder ein Item handelt?

Antwort:

Die erste Idee ist wohl, dass man pr�ft, ob der meta_type gleich Folder ist. Das mag in einfachen F�llen reichen, aber wirklich sauber und sch�n ist es nicht. Es gibt BTreeFolder, BTreeFolder2, PropertyFolder, Photo Folder ...

Als zweites k�nnte man als erfahrener Python Programmierer pr�fen, ob ein Objekt eine Instanz der Klasse OFS.Folder.Folder ist bzw. von dieser Klasse abstammt. Das ist etwas umst�ndlich und kostet auch mehr Zeit als die elegante Variante.

Viel eleganter und schneller als die L�sungen oben ist die �berpr�fung des Klassenattributes isPrincipiaFolderish:

  if obj.isPrincipiaFolderish:
     return 'folder'
  else:
     return 'item'

Diese Variable ist f�r Folder immer 1, f�r Items die nicht folderish sind immer 0.


Rubriken: PythonScripts    FAQ angelegt von: Tiran, Letzte �nderung: 25.04.2003 11:21 Uhr