Estoy escribiendo una aplicación de Django que realiza varias funciones, incluida la inserción o la actualización de nuevos registros en la base de datos a través de la URL.¿Cómo actualizo los miembros de un objeto usando un dict?
Por lo que algunas aplicaciones internas envían una solicitud al /import/?a=1&b=2&c=3
, por ejemplo. En la vista, quiero crear un nuevo objeto, foo = Foo()
y tener los miembros de foo
establecidos en los datos en el diccionario request.GET.
Esto es lo que estoy haciendo ahora:
- solicitud enviada a
/import/?a=1&b=2&c=3
- Vista crea nuevo objeto:
foo = Foo()
- objeto se actualiza con los datos.
Aquí es lo que tengo hasta ahora:
foo.a = request['a']
foo.b = request['b']
foo.c = request['c']
Obviamente, esto es tedioso y propenso a errores. Los datos en la URL tienen exactamente el mismo nombre que los miembros del objeto, por lo que es una asignación simple de 1 a 1.
Idealmente, me gustaría hacer capaz de hacer algo como esto:
foo = Foo()
foo.update(request.GET)
o algo por el estilo.
Gracias!
La solución presentada por las hormigas hace lo que quiere, pero ¿cómo está manejando la validación y el tipo de conversión? O no son motivo de preocupación (encuentro esto difícil de creer). –
No importan. Esto se está utilizando completamente en casa, donde los datos se insertan en una base de datos (con validación) y luego (aquí) se insertan en otra. –