2017-02-23 6 views
0

この質問は重複していると思われますが、Djangoシリアライザではグーグルで読んでthe docを読んでいます。それでも、私は、1対多の関係に関連するモデルに対応する直列化オブジェクトを保存するという最も簡単な目標を実装することに失敗しました。Django REST - 外部フィールドの場合の保存とシリアライザ

ここでモックコードです:

モデル:

class ParentModel(models.Model) 
    # Some fields 

class ChildModel(models.Model) 
    parent = models.ForeignKey(ParentModel, models.DO_NOTHING) 

シリアライザ:

class ParentSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = Message 
     fields = ('__all__') 

基本的に、私は二つのことを把握することはできません。

どう
  1. 子シリアライザを定義するにはどうすればいいですか?親との関係、私はそれぞれのポストの要求を実装するにはどうすればよい

クラスビュー:

class ChildList(APIView): 
    def post(self, request): 
     parent_serializer = ParentSerializer(data = request.data) 
     if parent_serializer.is_valid(): 
      # how do I tell the child serializer to use parent serializer and save? 

答えて

0

あなたはParentModel

例えばのために別々のシリアライザを宣言する必要があります

class ParentModelSerializer(ModelSerializer): 
    class Meta: 
     model = ParentModel 


class ChildModelSerializer(ModelSerializer): 
    parent = ParentModelSerializer()   

    class Meta: 
     model = ChildModel 

、その後、あなたは自分でChildModelSerilizerの作成ADNの更新を処理する必要があります。http://www.django-rest-framework.org/api-guide/serializers/#writable-nested-representations

関連する問題