2017-05-16 1 views
1

에 직렬화하는 방법 :나는 다음과 장고에 시리얼이 장고

[ 
    { 
     "url": "http://127.0.0.1:8000/sales/api/v1/lists/3741/", 
     "name": "DEA 2017", 
     "start": "2017-03-09T10:00:00", 
     "stop": "2017-12-31T12:00:00", 
     "state": "OPEN", 
     "vehicles": [ 
      "http://127.0.0.1:8000/sales/api/v1/assets/134299/", 
      "http://127.0.0.1:8000/sales/api/v1/assets/154368/", 
      "http://127.0.0.1:8000/sales/api/v1/assets/154367/", 
      "http://127.0.0.1:8000/sales/api/v1/assets/154246/", 
      "http://127.0.0.1:8000/sales/api/v1/assets/155906/", 
      "http://127.0.0.1:8000/sales/api/v1/assets/155212/", 
      "http://127.0.0.1:8000/sales/api/v1/assets/154574/", 
      "http://127.0.0.1:8000/sales/api/v1/assets/155683/", 
      "http://127.0.0.1:8000/sales/api/v1/assets/153347/", 
      "http://127.0.0.1:8000/sales/api/v1/assets/153183/", 
      "http://127.0.0.1:8000/sales/api/v1/assets/153182/", 
      "http://127.0.0.1:8000/sales/api/v1/assets/153152/", 
      "http://127.0.0.1:8000/sales/api/v1/assets/153116/", 
      "http://127.0.0.1:8000/sales/api/v1/assets/154913/", 
      "http://127.0.0.1:8000/sales/api/v1/assets/152389/", 
      "http://127.0.0.1:8000/sales/api/v1/assets/153459/", 
      "http://127.0.0.1:8000/sales/api/v1/assets/153568/", 
      "http://127.0.0.1:8000/sales/api/v1/assets/153659/" 
     ] 
    } 
] 

내가 vehicles I에 그 URL 년대 중 하나를 클릭하면 : 나는 다음과 같다 얻을

class ListSerializer(serializers.HyperlinkedModelSerializer): 
    vehicles = serializers.HyperlinkedRelatedField(
     view_name='asset-detail', 
     many=True, 
     read_only=True 
    ) 

    class Meta: 
     model = List 
     fields = ('url', 'name', 'start', 'stop', 'state', 'vehicles') 

결과 다음과 같이 객체를 얻으십시오 :

{ 
    "vin": "WVWZZZ6RZEY104640", 
    "make": "VOLKSWAGEN", 
    "model": "POLO", 
    "fuel": "Diesel" 
} 

내가 원하는 것은 URL 대신 객체로 결과를 얻는 것입니다.

따라서 뭔가를 다음과 같이

[ 
     { 
      "url": "http://127.0.0.1:8000/sales/api/v1/lists/3741/", 
      "name": "DEA 2017", 
      "start": "2017-03-09T10:00:00", 
      "stop": "2017-12-31T12:00:00", 
      "state": "OPEN", 
      "vehicles": [ 
       { 
        "vin": "WVWZZZ6RZEY104123", 
        "make": "VOLKSWAGEN", 
        "model": "POLO", 
        "fuel": "Diesel" 
       }, 
       { 
        "vin": "WVWZZZ6RZEY10452", 
        "make": "VOLKSWAGEN", 
        "model": "Golf", 
        "fuel": "Diesel" 
       }, 
       {...}, 
       {...}, 
       {...}, 
       .... 
      ] 
     } 
    ] 

어떤 조언을?

P. 나는 총 초보자 그리고 난 당신이 차량의 속성을 표현하는 Vehicle 모델을 할 생각 자비 : 당신이 중첩 된 시리얼을 찾고 있습니다

답변

3

+0

을 가능하게하지만, 우리는 모델을 가지고 있지 않기 때문에, 아무것도 더는 추측됩니다. – Linovia

3

there 설명이하시기 바랍니다. 은 그럼 당신은 차량 시리얼을 생성하고 당신을 위해 그것을 사용 목록 시리얼을 다음과 같이 할 수 있습니다

class VehicleSerializer(serializers.ModelSerializer): 
    """Serializer for vehicle""" 

     class Meta: 
     model = Vehicle 



class ListSerializer(serializers.HyperlinkedModelSerializer): 
    vehicles = VehicleSerializer(many=true) 

    class Meta: 
     model = List 
     fields = ('url', 'name', 'start', 'stop', 'state', 'vehicles') 
관련 문제