2016-12-01 2 views
0

내 프런트 엔드 (Angular2)가 JSON을 내 장고 Rest Framework 백엔드에 게시하고 있습니다. 시리얼 라이저가 JSON을 처리하고 정보를 추출하는 방법을 혼동합니다. 내 ContactFormSerializer에서 JSON data['userDetails']['email']을 어떻게 추출 할 수 있습니까?Serializer는 게시 된 JSON 데이터를 어떻게 처리합니까?

# Posted data example: 

{ 
    "sessionID": "1", 
    "created": "2/12/2016", 
    "completed": false, 
    "payment": { 
     ... 
    }, 
    "userDetails": { 
     "userID": 1, 
     "email": "[email protected]", 
     "location": "US" 
    } 
} 

class ContactUsView(APIView): 

    def post(self, request): 
     serializer = ContactFormSerializer(data=request.data) 

     if serializer.is_valid(): 
      serializer.save() 
      return Response(serializer.data, status=status.HTTP_201_CREATED) 
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) 


class ContactFormSerializer(serializers.Serializer): 

    def save(self): 
     # How can I grab the user email address from the JSON? 

     # send email to us 
+0

데이터 저장시 오류가 발생 했습니까? – neelima

답변

0

ContactFormSerializer에 대한 사용자 지정 저장 방법을 쓰고 싶다면. 아마도 도움이 될 것입니다

def save(self,validated_data): 
    user_details = validated_data.pop('userDetails') 
    model = Model.objects.create(
     userID = user_details['userID'], 
     email = user_details['email'], 
     location = user_details['location'] 
    ) 
    model.save() 
관련 문제