Cómo crear campos dinámicos en la clase Google App Engine expando?
-
08-10-2019 - |
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.
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