Как сделать запрос ко всем полям в django Many to Many

Пытаюсь выполнить цикл по отношениям "многие ко многим", где мне нужны все поля.

Мои модели:

class Recipe(models.Model):

    title = models.CharField(max_length=200)
    slug = AutoSlugField(populate_from="title")
    category = models.ForeignKey(RecipeTopic, on_delete=models.CASCADE)
    image = models.ImageField()
    description = models.TextField()
    ingredients = models.ManyToManyField(Ingredient, through="IngredientList")
    directions = models.TextField()
    servings = models.IntegerField()
    time = models.IntegerField()
    cuisine = models.ForeignKey(Cuisine, on_delete=models.CASCADE)

    def __str__(self):
        return self.title


class IngredientList(models.Model):
    ingredient = models.ForeignKey(Ingredient, on_delete=models.CASCADE)
    Recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)
    amount = models.FloatField(default=1)
    unit = models.ForeignKey(Units, on_delete=models.CASCADE)

Мои взгляды:

from .models import Recipe

def home(request):
    recipe = Recipe.objects.all()
    context = {
        "title": "Home Page",
        "recipe": recipe
    }
    return render(request, "home.html", context)

и мой шаблон:

    {%for r in recipe %}
        <h2>{{r.title}}</h2>
        <h4>Ingredients:</h4>
        {%for i in r.ingredients.all %}
           <p>---{{i.amount}}{{i.unit}}    {{i.ingredient}}</p>
        {%endfor%} 
{%endfor%}

Хочу показать ингредиенты, их количество и единицы измерения, которые идут вместе с ними. Только вот у меня получается только название "ингредиент"

Вы должны запросить обратное ForeignKey вашей IngredientList модели:

{% for r in recipe %}
    <h2>{{r.title}}</h2>
    <h4>Ingredients:</h4>
    {% for i in r.ingredientlist_set.all %}
        <p>---{{ i.amount }}{{ i.unit }} {{ i.ingredient }}</p>
    {% endfor %}
{% endfor %}
Вернуться на верх