Einzigartige Validierung auf verschachteltem Serializer unter Django Rest Framework

Ich habe einen Fall wie diesen, in dem Sie eine benutzerdefinierte geschachtelte Serializer-Beziehung mit einem eindeutigen Feld haben. Beispielfall:

class GenreSerializer(serializers.ModelSerializer):

    class Meta:
        fields = ('name',) #This field is unique
        model = Genre

class BookSerializer(serializers.ModelSerializer):

    genre = GenreSerializer()

    class Meta:
        model = Book
        fields = ('name', 'genre')

    def create(self, validated_data):
        genre = validated_data.pop('genre')
        genre = Genre.objects.get(**genre)
        return Book.objects.create(genre=genre, **validated_data)

Das Problem Wenn ich versuche, ein json-Objekt wie {"name": "The Prince", "genre": {"name": "History"}} zu speichern, versuche DRF, die eindeutige Einschränkung des Genreobjekts zu validieren, und wenn"Geschichte" Exists werfen mir eine Ausnahme, weil ein Genre mit dem Namen"Geschichte" muss eindeutig sein, und das stimmt, aber ich versuche nur, das Objekt zu verknüpfen und nicht zusammen zu erstellen.

Vielen Dank!

Antworten auf die Frage(4)

Ihre Antwort auf die Frage