2017-06-15 92 views
2

这是我从Django如何重构json对象django rest框架?

{ 
    id:"123" 
    latitude: "37.5111", 
    longitude: "126.9743" 
} 

json响应想输出这样的:

"123": { 
    latitude: "37.5111", 
    longitude: "126.9743" 
} 

serializers.py

class SearchSerializer(ModelSerializer): 

    class Meta: 
     model = IpGeo 
     fields = [ 
      # 'id', 
      # 'metadata', 
      'latitude', 
      'longitude' 
     ] 

views.py

class Search(ListAPIView): 

    queryset = IpGeo.objects.all() 
    serializer_class = SearchSerializer 

回答

1

从rest_framework进口串行serializers.py

class SearchSerializer(ModelSerializer): 

    custom_field = serializers.SerializerMethodField() 


    class Meta: 
     model = IpGeo 
     fields = [ 
     'custom,' 

     ] 
    def get_custom_field(self): 
     d = {} 
     d[str(self.id)] = dict(latitude=self.latitude,longitude=self.longitude) 
     return d