DRF. При использовании get_or_create в ответе возвращается, что запись с таким Id уже существует

Модель:

class Region(models.Model):
    id = models.IntegerField(primary_key=True)
    name = models.TextField(help_text='Название региона')

    class Type(models.TextChoices):
        CITY_DISTRICT = 'CITY_DISTRICT', 'район города'
        CITY = 'CITY', 'крупный город'
        CONTINENT = 'CONTINENT', 'континент'
        COUNTRY_DISTRICT = 'COUNTRY_DISTRICT', 'область'
        COUNTRY = 'COUNTRY', 'страна'
        REGION = 'REGION', 'регион'
        REPUBLIC_AREA = 'REPUBLIC_AREA', 'район субъекта федерации'
        REPUBLIC = 'REPUBLIC', 'субъект федерации'
        SUBWAY_STATION = 'SUBWAY_STATION', 'станция метро'
        VILLAGE = 'VILLAGE', 'город'
        OTHER = 'OTHER', 'неизвестный регион'

    type = models.CharField(
        max_length=100,
        choices=Type.choices,
        default=Type.CITY,
        help_text='Тип региона'
    )

Сериализатор:

class RegionSerializer(serializers.ModelSerializer):

    class Meta:
        model = Region
        fields = "__all__"

    def create(self, validated_data):
        region, _ = Region.objects.get_or_create(**validated_data)
        return region

Представление:

class RegionViewSet(viewsets.ModelViewSet):
    queryset = Region.objects.all()
    serializer_class = RegionSerializer

При попытке создать запись, идентичную уже существующей, возникает ошибка: введите сюда описание изображения

Подскажите, пожалуйста, как сделать так, чтобы при попытке создать запись, идентичную существующей, просто возвращалась уже существующая запись?


Ответы (0 шт):