2017-09-03 57 views

回答

1

如果需要,请求已经为您提供了dict,因此不需要解析。只需拨打.json()并将其直接传入串行器即可。

保存对象是一个单独的问题;您可以在序列化程序中执行此操作,也可以使用序列化程序中验证的数据在视图中手动执行。

resp = requests.get('http://my-service') 
if resp.status_code == 200:   
    ser = MySerializerClass(data=resp.json()) # the .json() parses to a dict 
    ser.is_valid(raise_exception=True) 

    # save using the serializer, if you've implemented there 
    ser.save() 

    # -or- do it manually 
    data = ser.validated_data 
    MyModel.objects.create(name=data['name', etc) 

请注意,嵌套序列化器是一个完全不同的主题,不易实现。就我个人而言,我会从validated_data手动创建对象(在该方法中或者在.save中),使用transactions