2017-06-09 8 views
0

サービスからサービスにオブジェクトを渡す必要があるマイクロサービスアプリケーションがあり、受信者はそのオブジェクトをdbに保存する必要があります。私が渡そうとしているオブジェクトには、別のテーブルへの外部キーであるフィールドがあります。それは次のとおりです。Djangoモデルは、PrimaryKeyRelatedFieldを逆シリアル化します

 
class RelatedModel(models.Model): 
    id=models.CharField(max_length=3, primary_key=True) 
    name=models.CharField(max_length=30)

class PrimaryModel(models.Model): id=models.IntegerField(primary_key=True) rel_model=models.ForeignKey(RelatedModel)

class RelatedSerializer(serializers.ModelSerializer): class Meta: fields = 'all' model = RelatedModel

class PrimarySerializer(serializers.ModelSerializer): rel_model = RelatedSerializer()

class Meta: 
    fields = '__all__' 
    model = PrimaryModel 

ただし、この場合には、受信側シリアライザは、関連するモデルが既にDBに存在したことを言って、無効でした。

PrimaryKeyRelatedFieldを使用しようとしましたが、受信シリアライザにrel_modelがまったく含まれていません。

受信シリアライザの関連フィールドをどのように逆シリアル化できますか?

+0

ビューを表示してください。 – zaidfazil

答えて

0

は、あなたがこのようなあなたのシリアライザを使用してみました

class RelatedSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = RelatedModel 
     fields = ('name',) 

class PrimarySerializer(serializers.ModelSerializer): 
    rel_model = RelatedSerializer() 
    class Meta: 
     model = PrimaryModel 
     fields = ('rel_model',) 

シリアライザを介してデータを投稿するとき、それは主キーフィールドであるとして、idを渡すことはできません。

関連する問題