Wie dynamische Felder in Google App Engine expando Klasse erstellen?
-
08-10-2019 - |
Frage
Ich habe eine db expando Klasse Widget genannt.
Ich bin in einem json String übergeben und in einem dict Umwandlung und das Hinzufügen sie dann auf den Datenspeicher.
Meine Frage ist, wie kann ich Schleife durch meine dict dynamische Felder zu erstellen.
widget = Widget.get_by_key_name(key_name)
widget.name = self.request.get('wname')
fields = simplejson.loads(self.request.get('wcontents'))
for k,v in fields.iteritems():
widget.k = v
Das macht „k“, wie mein Feldnamen wie in der dict auf den k-Wert entgegenzusetzen.
Lösung
Die Syntax widget.k
verweist auf das Attribut k
auf Objekt widget
. Um dynamisch wählen, die Sie setzen das Attribut, das eingebaute in setattr
Methode:
setattr(widget, k, v)
Dynamisch ein Attribut wie diese Einstellung wird das Feld auf dieser bestimmten Entität erstellen.
Andere Tipps
Versuchen Sie:
for k, v in fields.items()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow