で失敗し、私は連絡先のリストを示すだけでなく、このシリアライザを使用して新しい連絡先作成のためのListCreateAPIView
持っている:新しいレコードをINGのPOST
するためジャンゴDRF - ListCreateAPIView POST深さ= 2
class ContactPostSerializer(serializers.ModelSerializer):
class Meta:
model = Contact
exclude = ('id',)
を、I id
を除外して、DRFがヌルについて文句を言わないようにする必要があります。id
しかし、このシリアライザでレコードをリストする場合、シリアライザはForeignKey
フィールドのオブジェクトを返しません。これらのオブジェクトを取得するには、depth = 2
を追加します。だから今シリアライザは、次のようになります。
class ContactPostSerializer(serializers.ModelSerializer):
class Meta:
model = Contact
exclude = ('id',)
depth = 2
しかし、今、depth = 2
で、私はもうPOST
Sを行うことはできません。それはヌルのid値について再び不平を言う。
編集:私はdepth=2
を持って来るエラーは、私が作成している新しいレコードではなく、外部キーオブジェクトのモデルに固有であると付け加えるべきです。
私はここで何が欠けていますか?
ですあなたの 'id'フィールドは自動増分主キーですか?もしそうなら、シリアライザで 'id'を除外する必要はありません。 'id'フィールドを持たないデータを投稿すると、DRFはそれに不平を言うことはなく、あなたのために新しいIDが生成されます。 – Enix
@Enixあなたは正しいですが、それでも問題は解決しません。ソリューションを説明するために回答を投稿します – Garfonzo