ネストされたシリアライゼーションを持つオブジェクトを作成しようとしており、それに関連する他のオブジェクトも作成されています。私はModelSerializerののcreate()メソッドをオーバーライドし、メインオブジェクトが正常に作成されました。シリアル化エラー:タイプが正しくありません。期待されたpk値が受信されました
def create(self, validated_data):
post_data = validated_data.pop('post_set')
big_post = BigPost.objects.create(**validated_data) // This works
for post in post_data:
e = PostSerializer(data=post)
if e.is_valid():
e.save()
else:
print(e.errors) // Prints 'Incorrect type' error
return big_post
ネストされたオブジェクト(ポスト)を作成しようとしたときしかし、私はこのエラーを取得:以下に示すように
{'note': ['Incorrect type. Expected pk value, received Note.']}
'注意' をPostSerializerのフィールドです:
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = ('id', 'note', 'title', 'description')
ModelSerializerのデフォルトの動作は、モデルの関連フィールドのPrimaryKeyRelatedFieldを作成することです。しかし、私は、送信されたデータがちょうどPKのようなものであるときにインスタンスが作成されている理由を知らない。{"note":3、....}
解決策を試しましたか? –