2016-12-01 4 views
0

私のフロントエンド(Angular2)がJSONを私のDjango Rest Frameworkバックエンドに投稿しています。シリアライザがJSONを処理して情報を抽出する方法が混乱しています。 ContactFormSerializerはJSON data['userDetails']['email']をどのように抽出できますか?シリアライザは投稿された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() 
関連する問題