我想創建一個嵌套的序列化對象,以便與其相關的其他對象也被創建。我已經重寫了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,...}
您是否嘗試過下面的解決方案? –