Поле "многие-ко-многим" с дополнительными полями в 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)`