Ограничение Django UNIQUE не работает при использовании сигналов
UNIQUE constraint failed: brand_brand.slug.
class Brand(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField(max_length=255, unique=True)
slug = models.SlugField(max_length=255, unique=True)
log = models.ImageField(upload_to='brands')
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.name
def save(self, *args, **kwargs):
self.name = self.name.lower()
return super(Brand, self).save(*args, **kwargs)
@receiver(pre_save, sender=Brand)
def create_brand_slug(sender, instance, *args, **kwargs):
if not instance.slug:
instance.slug = slugify(instance.name)
class BrandForm(ModelForm):
class Meta:
model = Brand
fields = ['name', 'log']
Я сохраняю в базе данных название бренда маленькими буквами. Когда я попытался сохранить существующее название бренда с большой буквы, я получил UNIQUE constraint failed: brand_brand.slug error. Когда я попытался сохранить существующее название бренда, написанное маленькими буквами, я получил ошибку ' Бренд с таким названием уже существует.'