Работа с отношениями "многие ко многим" в моделях джангона

Я работаю над проектом "Система управления запасами супермаркета". Есть несколько моделей, требующих отношения "многие-ко-многим" между ними.

Я пытался добавить 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, но я должен потребовать вышеупомянутые поля в моей модели

Вернуться на верх