уникальность поля в модели django при условии
Есть связанные модели продукта и версии. Хочу чтобы поле версии было уникальным для определенного продукта. То есть чтобы нельзя было создать две версии для одного продукта с одинаковым номером. Подскажите плиз как это реализовать?
class Product(models.Model):
product_name = models.CharField(max_length=100, verbose_name="Название")
description = models.TextField(verbose_name="Описание")
image = models.ImageField(
verbose_name="картинка",
upload_to="product_catalog/photo",
blank=True,
null=True,
)
category = models.ForeignKey(
"Category",
verbose_name="Категория",
on_delete=models.SET_NULL,
null=True,
blank=True,
related_name="products",
)
price = models.IntegerField(verbose_name="цена за покупку")
created_at = models.DateField(auto_now_add=True, verbose_name="Дата создания")
updated_at = models.DateField(auto_now=True, verbose_name="Дата последнего изменения")
def __str__(self):
return f"{self.product_name} ({self.description})"
class Meta:
verbose_name = "Товар"
verbose_name_plural = "Товары"
ordering = ("id",)
class Version(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE, verbose_name="Продукт")
number = models.IntegerField(verbose_name="Номер версии")
name = models.CharField(max_length=100, verbose_name="Название версии")
is_active = models.BooleanField(verbose_name="Признак текущей версии")
class Meta:
verbose_name = "Версия"
verbose_name_plural = "Версии"
def __str__(self):
return f"{self.number} - {self.name}"