2017-05-09 2 views
1

현재 미리 계산 된 JSON을 반환 나는이 있습니다장고 RestFramework

class MySerializer(serializers.ModelSerializer): 

    class Meta: 
     model = MyModel 
     fields = (
      'id', 'f0', 'f1', 'f2') 

을 그리고는 다음과 같이 반환

{ 
    "count": 6242, 
    "previous": null, 
    "total_pages": 209, 
    "results": [ 
     { 
      "id": 63915, 
      "f0": "Some stuff" 
      ..... 
     }, 
     { 
      "id": 63916, 
      "f0": "Some other stuff" 
      ..... 
     }....    

    ] 
} 

을 그리고 이것은 좋은,하지만 난 데이터를 직렬화하는 것은 사실은 꽤입니다 것으로 나타났습니다 비행 중에 비용이 많이 들기 때문에 미리 계산하고 싶습니다.

class MySerializer(serializers.ModelSerializer): 

    class Meta: 
     model = MyModel 
     fields = ('json_representation',) 

내 질문은, 그것은 가능하다 : 지금까지 내가 그것을 미리 계산하고 내 모델의 jsonfield에 저장 관리했습니다, 문제는 내 API는 이제 {{myold_response} 'json_repersentation을'} 반환된다 { 'json_representation': {id : 0, f0 : label ...}}의 "오버 헤드"없이 json_representation 필드에 포함 된 json을 단순히 반환하도록 변경하는 대신 단순히 {id : 0, f0 : label ...}

답변

1

당신은 시리얼 to_representation 방법을 재정의 할 수

def to_representation(self, instance): 
    data = super(MySerializer, self).to_representation(instance) 
    return data['json_representation'] 
+0

아! 정확히 내가 무엇을 찾고 있었는지! 고맙습니다. –

관련 문제