class ProductPrice(models.Model):
price = models.DecimalField(max_digits=8, decimal_places=2, default=0.00)
date_with = models.DateTimeField(auto_now_add=True)
date_by = models.DateTimeField()
class Meta:
verbose_name = 'цена'
verbose_name_plural = 'цены'
def __str__(self) -> str:
return f'Цена товара:'
class Products(models.Model):
product = models.CharField(max_length=100, db_index=True)
slug = models.SlugField(max_length=200, db_index=True)
description = models.TextField(max_length=500)
image = models.ImageField(blank=True, null=True, upload_to='products_images/', verbose_name='Изображение')
category = models.ForeignKey(to=ProductsCategory, on_delete=models.PROTECT)
available = models.BooleanField(default=True)
created = models.DateTimeField(auto_now_add=True, verbose_name='Дата создания')
size = models.CharField(max_length=30, blank=True, verbose_name='Размер')
volume = models.PositiveIntegerField(blank=True, verbose_name='Объем', default=0)
color_product = models.CharField(max_length=30, blank=True)
price = models.ForeignKey(to=ProductPrice, on_delete=models.DO_NOTHING, to_field=id)
stock = models.ManyToManyField(
Stock,
through='ProductStock',
through_fields=('product', 'stock')
)
class Meta:
ordering = ('product',)
index_together = (('id', 'slug'),)
verbose_name = 'Продукт'
verbose_name_plural = 'Продукты'
def __str__(self) -> str:
return f'Продукт: {self.product} | {self.category}'
def get_absolute_url(self):
return reverse('product:product_detail',
args=[self.id, self.slug])
Не могу понять в чем проблема. Выдаёт следующую ошибку при миграции:
Running migrations:
Applying product.0002_auto_20230403_1141...Traceback (most recent call last):
File "E:\PYTHON_HTML_CSS\course-work_django\course-work_django\nenv\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
psycopg2.errors.ForeignKeyViolation: ОШИБКА: INSERT или UPDATE в таблице "product_products" нарушает ограничение внешнего ключа "product_products_price_id_0e1fa44e_fk_product_productprice_id"
DETAIL: Ключ (price_id)=(0) отсутствует в таблице "product_productprice".
The above exception was the direct cause of the following exception:
<code>
Applying product.0002_auto_20230403_1141...Traceback (most recent call last):
File "E:\PYTHON_HTML_CSS\course-work_django\course-work_django\nenv\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
psycopg2.errors.ForeignKeyViolation: ОШИБКА: INSERT или UPDATE в таблице "product_products" нарушает ограничение внешнего ключа "product_products_price_id_0e1fa44e_fk_product_productprice_id"
DETAIL: Ключ (price_id)=(0) отсутствует в таблице "product_productprice".
django.db.utils.IntegrityError: ОШИБКА: INSERT или UPDATE в таблице "product_products" нарушает ограничение внешнего ключа "product_products_price_id_0e1fa44e_fk_product_productprice_id"
DETAIL: Ключ (price_id)=(0) отсутствует в таблице "product_productprice".
</code>