Djangorestを使用する
以下は私が私のserializer.pyを持っていた方法です。
class ProfileSerializer(serializers.ModelSerializer):
class Meta:
model = Profile
fields = ('id', 'name', 'active', 'type')
タイプはフラットビューです
次に、このようにプロファイルごとに「type」がネストされるように変更しました...
class TypeSerializer(serializers.ModelSerializer):
class Meta:
model = Type
fields = ('id', 'name', 'active')
class ProfileSerializer(serializers.ModelSerializer):
type = TypeSerializer()
class Meta:
model = Profile
fields = ('id', 'name', 'active', 'type'')
これで完全に機能するようになりましたが、プロファイルの詳細が読み取り専用になっている場合にのみ、「type」を更新できるようになりました。
新しいプロファイルを作成するときにタイプを追加し、このネストされたビューを保持するにはどうすればよいですか?
私はこれを明確に説明したと思います。
アップデート:
わかりました、私はこれを読んだだけです:
注:ネストされたシリアライザーは、インスタンスの更新時に使用するとあいまいまたは非自明な動作をする場合があるため、読み取り専用の表現にのみ適しています。読み取り/書き込み表現の場合、RelatedFieldサブクラスの1つを使用して、常にフラット表現を使用する必要があります。
だからそれは理にかなっています。だから私はそれを...に変更しました。
type = serializers.PrimaryKeyRelatedField()
これでPOSTに戻されて機能しますが、残念ですが、「type」をIDと名前で表すことができないため、エンドユーザーにとってより意味がありますか?