Pregunta

Tengo una clase db expando llama del widget.

Estoy de paso en una cadena JSON y convertirlo en un diccionario y luego agregarlo al almacén de datos.

Mi pregunta es ¿cómo puedo bucle a través de mi dict para crear campos dinámicos.

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

Esto hace "k" como mi nombre de campo como se oponen al valor k en el dict.

¿Fue útil?

Solución

El widget.k sintaxis hace referencia a la k atributo en widget objeto. Para dinámicamente elegir qué atributo se establece, utilice la incorporada en el setattr método :

setattr(widget, k, v)

dinámicamente el establecimiento de un atributo como esto creará el campo en esa entidad en particular.

Otros consejos

Trate:

for k, v in fields.items()
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top