У меня есть модель с полем "многие ко многим". Как я могу отобразить информацию, только если это поле выбрано?
Я создаю приложение для рецептов. Модель Recipe имеет поле ManyToMany favorites. На странице избранного я хочу отображать только те рецепты, которые были выбраны. Я не могу понять, как отобразить все рецепты. Как я могу настроить отображение только тех рецептов, которые понравились пользователю?
models.py:
class Recipe(models.Model):
title = models.CharField(max_length=45)
description = models.CharField(max_length=180)
recipe_image = models.ImageField(upload_to=get_image_path, blank=True, null=True, default="/static/photos/food_default.jpg")
favorites = models.ManyToManyField(User, related_name='favorite', default=None, blank=True)
def __str__(self):
return self.title
views.py:
def pinned_view(request):
fav = Recipe.objects.all()
model = { "fav": fav }
return render(request, 'pinnedRecipes.html', model)
pinnedRecipes.html:
{% for recipe in view %}
<div class="card card-custom list-inline-item m-4">
<a href="#" class="link-custom">
<img class="card-img-top img-thumbnail img-custom" src="{{ recipe.recipe_image.url }}" alt="Image Not Found" />
<div class="card-body">
<h5 class="card-title text-truncate">{{ recipe.title }</h5>
<p class="card-text text-truncate">{{ recipe.description}}</p>
</div>
</a>
</div>
{% endfor %}
</a>
</div>
</div>