Работа с отношениями "многие ко многим" в моделях джангона
Я работаю над проектом "Система управления запасами супермаркета". Есть несколько моделей, требующих отношения "многие-ко-многим" между ними.
Я пытался добавить ManyToManyField(to=model, on_delete=models.CASCADE). Однако это работает, но мне нужно добавить некоторые дополнительные поля в таблицу-мост между двумя таблицами. Как я могу это сделать?
Ниже приведен мой models.py
class Purchase(models.Model):
pay_status = models.CharField(max_length=50, choices=PAYSTATUS_CHOICES, default="Pending")
date_of_purchase = models.DateTimeField(auto_now_add=True)
last_payment = models.DateTimeField(auto_now=True)
class Product(models.Model):
name = models.CharField(max_length=200)
barcode = models.IntegerField(blank=True, null=True)
description = models.TextField(blank=True, null=True)
# image =
weight = models.TextField(blank=True, null=True)
status = models.BooleanField(default=True)
price = models.FloatField()
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
class PurchaseProduct(models.Model):
purchase_id = models.ForeignKey(to=Purchase, on_delete=models.CASCADE)
product_id = models.ForeignKey(to=Product, on_delete=models.CASCADE)
unit_price = models.FloatField()
quantity = models.IntegerField()
price = models.FloatField()
В таблице bridge я также хочу добавить цену за единицу и количество, как это сделать? ИЛИ есть альтернативный способ сделать?
Однако если я не буду добавлять цену за единицу и количество, мне не нужно создавать эту таблицу-мост, все завершения будут сделаны самим Django, но я должен потребовать вышеупомянутые поля в моей модели