Sektionen
Benutzerspezifische Werkzeuge
Sie sind hier: Startseite Support Dokumentation docs Plone: Auslesen aller Felder eines Dexterity Objektes.

Plone: Auslesen aller Felder eines Dexterity Objektes.

Manchmal möchte man in einer Plone View über alle Felder eines Dexterity Objektes Interieren. Dazu ist es nötig, eine Liste aller Felder zu haben. Diese kurze Anleitung zeigt, wie man diese Felder bekommt.

Um eine Liste aller Felder zu bekommen, bringt Dexterity den SCHEMA_CACHE mit. Dieser kann von plone.dexterity.schema importiert werden. Anschließend kann man sich über den portal_type das Schemainterface besorgen und sich eine Liste der Felder zurückgeben lassen:

from plone.dexterity.schema import SCHEMA_CACHE
schema = SCHEMA_CACHE.get(self.context.portal_type)
fields = schema.names()
for field in fields:
    ...

Es ist auch möglich, sich eine Liste von Tupeln zurückgeben zu lassen, welche den Feldnamen und die Feldbeschreibung enthalten:

fields_and_descriptions = schema.namesAndDescriptions()