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.

Était-ce utile?

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
scroll top