Создание модели 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', поэтому я не уверен, что что-то не так.

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