Поле "многие-ко-многим" с дополнительными полями в Django REST Framework

У меня есть две модели: Purchase и Product, в модели Purchase у меня есть несколько полей и среди них many to many ссылающихся на Product, но для каждого продукта вставленного в purchase мне нужно добавить поле status, price и quantity и я понятия не имею как это сделать. Позже мне нужно изменить эти поля, и мне также нужно иметь возможность добавить больше продуктов, изменить продукт или исключить его из покупки.

Покупка

 class Purchase(models.Model):
     id = models.UUIDField(primary_key=True, unique=True, default=uuid4, editable=False)
     created_at = models.DateTimeField(_("Created At"), default=timezone.now)
     request_date = models.DateField(_("Request Date"), default=date.today)
     obs = models.TextField(_("Observation"))
     status = models.CharField(_("Status"), choices=STATUS, default="Pending", max_length=8)
     products = models.ManyToManyField(Product, verbose_name=_("Products"))
     approval_date = models.DateField(_("Approval Date"), blank=True, null=True)`

Продукт

 class Product(models.Model):
     id = models.UUIDField(primary_key=True, unique=True, default=uuid4, editable=False)
     code = models.CharField(_("Code"), max_length=30)
     un = models.CharField(_("Measurement Unit"), max_length=30)
     description = models.TextField(_("Description"))`

Я пытался создать модель PurchaseProduct, но не смог заставить ее работать должным образом.

ПриобрестиПродукт

 class PurchaseProduct(models.Model):
     purchase = models.ForeignKey(Purchase, on_delete=models.CASCADE)   
     product = models.ForeignKey(Product, on_delete=models.CASCADE)
     quantity = models.DecimalField(_("Quantity"), max_digits=10, decimal_places=2)
     price = models.DecimalField(_("Price"), max_digits=10, decimal_places=2)
     status = models.CharField(_("Status"), choices=STATUS, default="Pending", max_length=8)`
Вернуться на верх