У меня есть такой случай, когда у вас есть собственное вложенное отношение сериализатора к уникальному полю. Пример случая:Уникальная проверка на вложенном сериализаторе на платформе Django Rest
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)
Проблема: Когда я пытаюсь сохранить объект JSON, как { «имя»: «Князь», «жанр»: { «имя»: «История»}} DRF попробовать для проверки уникального ограничения объекта жанра, и если «История» существует, я выбрал исключение, потому что жанр с именем «История» должен быть уникальным, и это правда, но я просто пытаюсь связать объект, а не создавать вместе.
Спасибо вам большое!
Большое вам спасибо! Но если мне нужна проверка во вложенном сериализаторе, когда я использую его для сохранения экземпляров Genre? есть ли способ проверить, только если я создаю экземпляр Genre, а не создание экземпляра книги? Еще раз спасибо! –
Это должно быть частью второго шага проверки - скажите в части создания/обновления, подняв ValidationError. – Linovia
Это было очень полезно! Большое спасибо! –