Автоматическое заполнение второго поля в админке данными из базы в соответствии с выбранным значением первого поля

Есть три модели Recipe, Ingredient и IngredientToRecipe.

class Ingredient(models.Model):
    title = models.CharField(max_length=150)
    unit = models.CharField(max_length=50)

class Recipe(models.Model):
    title = models.CharField(max_length=150)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    image = models.ImageField(upload_to='images/') # !!!! CHECK
    text = models.TextField()
    ingredients = models.ManyToManyField(
        Ingredient,
        through='IngredientToRecipe',
        related_name='recipes'
    )
    tag = models.ManyToManyField(Tag)
    cook_time = models.PositiveIntegerField()

class IngredientToRecipe(models.Model):
    recipe = models.ForeignKey(Recipe, related_name='ingredient_recipe', on_delete=CASCADE)
    ingredient = models.ForeignKey(Ingredient, related_name='ingredient_recipe', on_delete=CASCADE)
    unit = models.CharField(max_length=50)
    quantity = models.CharField(max_length=50)

Данные в таблицу Ingerdients загружаются предварительно из csv файла в виде название_инредиента, единица_измерения. Мне нужно, чтобы в админке при заполнении таблицы IngredientToRecipe, при выборе ингредиента из выпадающего списка автоматически заполнялось поле unit соответствующей единицей измерения. А так же чтобы отсутствовала возможность вручную задать свою единицу.

Пример

Подскажите в какую сторону смотреть?

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