1
2つのシリアライザクラスを互いに参照する必要がありますが、両方のクラスが互いに参照している場合、定義されていないクラスの1つを取得しています。私は、クラス名/差分名の複製を作成しましたが、これはうまくいくようですが、3つのクラスを作成せずにこれを行うより良い方法はありますか?お互いを参照するDjangoシリアライザクラス
class ArtistSerializer(serializers.ModelSerializer):
name = serializers.CharField()
class Meta:
model = Artist
fields = ('id', 'name',)
class TrackSerializer(serializers.ModelSerializer):
artist = ArtistSerializer(read_only=True)
class Meta:
model = Track
fields = ('id', 'artist', 'title',)
class ArtistSerializer2(serializers.ModelSerializer):
name = serializers.CharField()
tracks = TrackSerializer(many=True, read_only=True)
class Meta:
model = Artist
fields = ('id', 'name', 'slug', 'tracks')
これは循環参照です。なぜあなたは1つ必要ですか? – e4c5
アーティスト情報のトラックの詳細と関連するすべてのトラックにアーティスト名の参照を表示したいので、 – bayman
私の答えを試しましたか? – e4c5