2012-07-14 11 views
7

¿Cuál es la mejor manera en django para actualizar una instancia de modelo dada una representación json de esa instancia de modelo?Conversión de JSON a instancia de modelo en Django

¿Está usando deserialize el enfoque correcto? ¿Hay tutoriales disponibles por ahí?

+0

¿Has mirado en [esta página en serialización de modelos en Django] (https://docs.djangoproject.com/en/dev/topics/serialization/)? –

+0

Sí, pero estoy teniendo dificultades con eso. el objeto json que estoy pasando al servidor no tiene todos los datos en el modelo solo una parte de él (incluido el pk, por supuesto). Y quiero actualizar el modelo basado en ese código. –

Respuesta

11

El mejor enfoque sería utilizar uno de los existing Django applications que admiten la serialización de instancias de modelo desde y hacia JSON.

En cualquier caso, si analiza el objeto JSON en un diccionario Python, básicamente puede usar el método QuerySet.update() directamente.

lo tanto, que usted recibe un diccionario donde todas las teclas se asignan a modelar atributos y representan los valores que te gustaría actualizar, usted puede hacer esto:

updates = {         # Our parsed JSON data 
    'pk': 1337, 
    'foo': 'bar', 
    'baz': 192.05 
} 

id = updates.pop('pk')       # Extract the instance's ID 
Foo.objects.filter(id=id).update(**updates) # Update the instance's data 
Cuestiones relacionadas