Создание модели Django для рецепта #3
Еще один вопрос в продолжение Создание модели Django для рецепта №2.
Я столкнулся с ошибкой при работе со следующим кодом:
class Ingredient(models.Model):
'''All ingredients for any recipe or individual selection'''
name = models.CharField(max_length=50)
department = models.ForeignKey(Department, null=True, on_delete=models.SET_NULL)
def __str__(self):
return self.ingredient
class IngredientDetail(models.Model):
'''A class to identify variable quantities of ingredients'''
ingredient = models.ForeignKey(Ingredient, null=True, on_delete=models.SET_NULL)
quantity = models.CharField(max_length=1)
class Meta:
verbose_name_plural = 'Ingredient Details'
def __str__(self):
return self.quantity
class Recipe(models.Model):
'''A Recipe class to input new recipes'''
recipe = models.CharField(max_length=50)
ingredients = models.ManyToManyField(Ingredient, through=IngredientDetail)
instructions = models.TextField(null=True)
cuisine = models.ForeignKey(Cuisine, null=True, on_delete=models.SET_NULL)
picture = models.ImageField(upload_to= 'media/', null=True, blank=True)
def __str__(self):
return self.recipe
Я настроил его таким образом, чтобы связать переменное количество ингредиентов с несколькими рецептами. Однако, когда я запускаю этот код, Django выявляет следующую проблему:
grocery_lists.IngredientDetail: (fields.E336) Модель используется как промежуточная модель 'grocery_lists.Recipe.ingredients', но у нее нет внешнего ключа к 'Recipe' или 'Ingredient'.
Как вы видите, существует внешний ключ к 'Ingredient', поэтому я не уверен, что что-то не так.