У меня есть две модели:
class Combo(models.Model):
price = models.DecimalField
class Choice(models.Model):
combo = models.ForeignKey(Combo, on_delete=models.CASCADE)
items = models.ManyToManyField(Item)
А также у меня есть модели для заказа:
class Order(models.Model):
comment = models.CharField(max_length=300)
class OrderItem(models.Model):
item = models.ForeignKey(Item, on_delete=models.CASCADE)
amount = models.PositiveIntegerField
Combo состоит из всех вариантов, связанных с Combo, и для получения цены Combo нам нужноесть один элемент для каждого выбора Combo.
Например, Combo # 1 имеет два варианта с элементами:
- Rag, Brom.
- Совок.
Так что, если в нашем заказе 2 тряпки, 1 метла и 2 совка, мы получим 2 комбо и одну метлу в качестве предмета.
Как разделить ордер на комбо и предметы, чтобы иметь2 QuerySets - один для комбо и другой для Inems не включены в комбо?Спасибо!
UPD:
class Item(models.Model):
name = models.CharField(max_length=300)
price = models.DecimalField
Товар - это товар.Есть несколько пунктов для каждой модели выбора.Например, у нас есть комбо для фастфуда с 2 вариантами.Выбор напитка состоит из двух предметов - кофе и чая.Выбор блюд есть пункты - курица и гамбургер.Поэтому, если мы покупаем 2 кофе и один гамбургер, мы покупаем одно комбо (потому что кофе подходит для первого выбора, а гамбургер подходит для второго выбора) и 1 дополнительный кофе (потому что для него нет курицы с гамбургером).Если у нас было 2 кофе, 1 гамбургер и 1 курица, мы должны разделить заказ на 2 одинаковых комбо (кофе + гамбургер и кофе + курица).