Итак, я хотел бы получить совет по настройке модели. У меня есть модель рецепта, которую я разрабатываю (план по размещению планшета на кухне). То, что я хотел бы иметь, - это иметь каждый рецепт, содержащий список ингредиентов, но также иметь соответствующий список количества, который соответствует списку ингредиентов. Идея состоит в том, что у меня есть модель Ингредиента, которая будет использоваться, чтобы отслеживать, какие ингредиенты у меня есть на руках, и сколько, и у модели Рецепта будет свой собственный список ингредиентов, а также какие количества необходимы. Таким образом, у меня были бы рецепты рецептов приложений, которые у меня есть, чтобы сделать, и спрятать их, у меня нет ингредиентов (или на самом деле это будет более сложным, но это идея). Вот моя текущая настройка:Поля модели Django
Ингредиент model.py
class Unit_of_Measure(models.Model):
"""Unit_of_Measure model. This is used as the foriegnkey for the Quantity model unit_of_measure key."""
class Meta:
verbose_name_plural = "Units of Measure"
def __unicode__(self):
return self.unit_of_measure
unit_of_measure = models.CharField(max_length=200)
class Location(models.Model):
"""Location model. This is used a the foriegnkey for the Ingredient model location key."""
class Meta:
verbose_name_plural = "Locations"
def __unicode__(self):
return self.place
place = models.CharField(max_length=200)
class Ingredient(models.Model):
"""Ingredients model. Includes ingredient title, quantity on hand, location of ingredient (foreignkey), expiration date, and if it is a shop for ingrdient."""
class Meta:
verbose_name_plural = "Ingredients"
def __unicode__(self):
return self.title
title = models.CharField(max_length=200)
quantity = models.CharField(max_length=200)
unit_of_measure = models.ForeignKey(Unit_of_Measure)
location = models.ForeignKey(Location)
expiration_date = models.DateTimeField()
shop_for = models.BooleanField()
Рецепт model.py
class RecipeType(models.Model):
"""Recipe type model. This is used as the foreign key for the Recipe model recipe style."""
def __unicode__(self):
return self.style
style = models.CharField(max_length=200)
class Recipe(models.Model):
"""Recipe model. Includes recipe title, recipe style (dinner, snack, etc..), ingredient list (foreignkey), recipe instructions, storage style, and expiration date."""
class Meta:
verbose_name_plural = "Recipes"
def __unicode__(self):
return self.title
title = models.CharField(max_length=200)
style = models.ForeignKey(RecipeType)
required_ingredient_list = models.ManyToManyField(Ingredient, related_name='additional_ingredient_list')
additional_ingredient_list = models.ManyToManyField(Ingredient, related_name='required_ingredient_list', blank=True)
recipe_instruction = models.TextField()
storage_style = models.CharField(max_length=200)
expiration_date = models.DateTimeField()
Таким образом, любое предложение о том, как совпасть два списка полей? как «required_ingredient_list», соответствующий «required_ingredient_quantity_list» или что-то еще? Или лучшее решение? Или любые предложения вообще? Сейчас я могу сортировать рецепты по ингредиентам, но поскольку количество модели Ingredient является количеством, которое у меня есть на моей кухне, у меня нет поля для представления количеств, которые использует рецепт, это просто сказано в поле recipe_instruction. Halpz!
huh. Я добавил модель RecipeIngredient после рецепта в качестве сквозной модели, но ничего не отображается на странице администратора (models.Recipe добавлено поле «component.sign_list = models.ManyToManyField ('component.Ingredient', via = 'recipe.RecipeIngredient')) noooothing показывает на админ-страница для ингридиента.Какие идеи? – jonc
никогда не было! Я получил его, просто пришлось добавить модель RecipeIngredient в RecipeAdmin как встроенный. Теперь он отображает ингредиенты рецептов на странице рецептов как встроенные. – jonc