Comment créer des champs dynamiques dans la classe de Google App Engine?
-
08-10-2019 - |
Question
J'ai une classe db expando appelé un widget.
Je passe dans une chaîne JSON et la convertir en un dict, puis l'ajouter à la datastore.
Ma question est de savoir comment la boucle I à mon dict pour créer des champs dynamiques.
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
Cela rend « k » comme mon nom de domaine comme s'opposer à la valeur de k dans le dict.
La solution
La widget.k
syntaxe fait référence à l'k
d'attribut sur widget
objet. dynamiquement que vous choisissez ensemble d'attributs, utilisez le intégré setattr
procédé :
setattr(widget, k, v)
Dynamiquement définir un attribut comme cela va créer le champ de cette entité particulière.
Autres conseils
Essayez:
for k, v in fields.items()
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow