Frage
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.