2012-07-14 8 views
7

Jaki jest najlepszy sposób w django do aktualizacji instancji modelu, biorąc pod uwagę jsonową reprezentację tej instancji modelu.Konwersja JSON do instancji modelu w Django

Czy używasz deserializacji prawidłowego podejścia? Czy są dostępne tutoriale?

+0

Czy spojrzał [na tej stronie serializacja modeli w Django] (https://docs.djangoproject.com/en/dev/topics/serialization/)? –

+0

Tak - ale mam z tym problem. obiekt json, który przekazuję serwerowi, nie ma wszystkich danych w modelu tylko jego części (w tym oczywiście pk). I chcę zaktualizować model na podstawie tego kodu. –

Odpowiedz

11

Najlepszym rozwiązaniem byłoby użycie jednego z existing Django applications, który obsługuje serializowanie instancji modelu do iz JSON.

W obu przypadkach, jeśli analizujesz obiekt JSON do słownika Python, możesz zasadniczo użyć metody QuerySet.update() bezpośrednio.

więc powiedzieć, masz słownika gdzie wszystkie klawisze mapowania modelu atrybuty i stanowią one wartości, którą chcesz zaktualizować, można to zrobić:

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