Я создаю магазин продуктов.Как сделать «пресеты» в моделях Django
class Product(models.Model):
name = models.CharField(verbose_name=_(u'name'), max_length=200)
quantity = models.IntegerField(verbose_name=_(u'quantity'))
>>> Product.objects.create(name="egg", quantity="100")
>>> Product.objects.create(name="ham", quantity="10")
Теперь я хочу, чтобы создать рецепты, что-то вроде: омлет из 3 яиц и один кусок ветчины. я попытался описать что-то вроде:
class Recipe(models.Model):
name = models.CharField(verbose_name=_(u'name'), max_length=200)
items = models.ManyToManyField('Product', related_name='recipe_sets')
Но застрял в описании количество необходимых продуктов для одного recipe
.
Должен ли я поставить quantity
в другой модели? Как рассчитать количество порций (в зависимости от количества продукта)? Есть ли элегантный способ или приложение для вычета продуктов (в результате приготовления одного блюда)?
Это на самом деле не Джанго вопрос. Это вопрос проектирования схемы. Вероятно, вам следует провести некоторое исследование структуры схемы для приложения типа Order/Product/Parts, которого много. Это поможет вам в правильном направлении. –