2012-07-14 5 views
7

django에서 해당 모델 인스턴스의 json 표현을 사용하여 모델 인스턴스를 업데이트하는 가장 좋은 방법은 무엇입니까?JSON을 장고에서 모델 인스턴스로 변환

올바른 방법으로 비 직렬화를 사용하고 있습니까? 튜토리얼을 사용할 수 있습니까?

+0

당신이 [이 페이지에서 봤어 Django의 모델 직렬화] (https://docs.djangoproject.com/en/dev/topics/serialization/)? –

+0

예 -하지만 문제가 있습니다. json 객체는 서버에 전달 중입니다. 모델의 모든 데이터를 포함하지는 않습니다 (물론 pk 포함). 그리고 그 코드를 기반으로 모델을 업데이트하고 싶습니다. –

답변

11

가장 좋은 방법은 JSON에서 모델 인스턴스 직렬화를 지원하는 existing Django applications 중 하나를 사용하는 것입니다.

두 경우 모두 JSON 개체를 파이썬 사전으로 구문 분석하면 기본적으로 QuerySet.update() 메서드를 직접 사용할 수 있습니다.

그래서, 당신은 모든 키 특성을 모델링하는지도 사전을 얻고 그들이 업데이트 할하려는 값을 나타내는 말, 당신이 할 수 있습니다 :

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 
관련 문제