2016-08-12 59 views
2

我有這樣的串行:傳遞額外的參數給嵌套串行Django的REST框架

class FirstModelSerializer(serializers.ModelSerializer): 

     secondModel = SecondModelSerializer() 

     class Meta: 
      model = FirstModel 
      fields = '__all__' 

哪裏secondModel是FirstModel的多對多領域。

有什麼辦法將FirstModel對象id傳遞給SecondModelSerializer嗎?

回答

2

然後我覺得比較容易。我不得不使用上下文這樣

class FirstModelSerializer(serializers.ModelSerializer): 

     secondModel = SerializerMethodField() 

     class Meta: 
      model = FirstModel 
      fields = '__all__' 

     def get_secondModel(self, obj): 
      return SecondModelSerializer(obj.secondModel.all(), many=True, context={'first_model_id': obj.id)).data 

並使用self.context.get(「first_model_id」)在SecondModelSerializer去這個ID。