Как выбрать несколько элементов с несколькими количествами в django rest framework?

Models.py

class BaseModel(models.Model):
  branch = models.ForeignKey(Branch, on_delete=models.PROTECT, blank=True, null=True)
  company = models.ForeignKey(Company, on_delete=models.PROTECT, blank=True, null=True)

   class Meta:
      abstract = True


class MealMenu(BaseModel):
    employee = models.ForeignKey(Employee, on_delete=models.PROTECT, null=True, blank=True)
    item_name = models.CharField(max_length=50, null=True, blank=True)
    quantity = models.PositiveIntegerField()
    price = models.FloatField()

    def __str__(self):
      return f"{self.item_name} {self.price}" 




class MealOrder(BaseModel):

  RECEIVED = 'Received'
  PENDING = 'Pending'
  REJECTED = 'Rejected'

  MEAL_CHOICES = (
     ('Breakfast', 'Breakfast'),
     ('Lunch', 'Lunch'),
     ('Dinner', 'Dinner'),
  )

  STATUS_CHOICES = (
      (RECEIVED, 'Received'),
      (PENDING, 'Pending'),
      (REJECTED, 'Rejected'),
  )

   id = models.UUIDField(primary_key=True, default=uuid.uuid4, null=False)
   total_items = models.IntegerField(null=True, default=0)
   total_amounts = models.FloatField(default=0.0)
   menu = models.ForeignKey(MealMenu, on_delete=models.PROTECT)
   quantity = models.PositiveIntegerField(default=1, blank=False)
   meal_time = models.CharField(max_length=25, choices=MEAL_CHOICES)
   employee = models.ForeignKey(Employee, on_delete=models.PROTECT)
   date = models.DateField(auto_now=True)
   status = models.CharField(max_length=25, choices=STATUS_CHOICES, default=PENDING)

У меня есть две модели. В первой модели я создал название_пункта меню, цену и количество. В MealOrder у меня есть внешний ключ MealMenu Model и создано отдельное поле количества. Я хочу выбрать несколько пунктов с их количеством. Но я не могу понять сценарий.

Таким образом, вы можете иметь отдельную модель для обработки количества для различных товаров в заказе.
Например, так:

class MealOrderItem(BaseModel):
    order = models.ForeignKey(
        MealOrder, on_delete=models.PROTECT, null=True, blank=True
    )
    quantity = models.PositiveIntegerField()
    meal = ForeignKey(
        MealMenu, on_delete=models.PROTECT, null=True, blank=True
    )

   

Это поможет вам создать несколько вариантов меню блюд для заказа, каждый из которых будет иметь свое количество.

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