Фильтрация значений django из выпадающего списка

Имеется поле для выбора жанра книги:

<select class="filter" name="filter">
  {% for genre in Genres %}
    <option value="{{genre}}">{{genre}}</option>
  {% endfor %}
</select>

И вывод всех книг, выбранного жанра:

{% for book in Books %}
  {% if book.genre == 'sport' }
    <img src='/static/media/{{book.img\}}' class="img">
    <h5> {{book.name}} </h5>
  {% endif %}
{% endfor %}

Нужно сделать так, чтобы при выборе жанра в выпадающем списке, результаты фильтровались по этому жанру (вместо 'sport' было то, что выбрал пользователь). Каким способом это можно реализовать средствами django?

Файл models.py:

class Genres(models.Model):
    name = models.CharField(max_length=128)
    def __str__(self):
        return self.name

class Books(models.Model):
    name = models.CharField(max_length=64)
    genre = models.ManyToManyField(Genre)
    img = models.ImageField(upload_to = 'images')
    def __str__(self):
        return self.name

Ответы (1 шт):

Автор решения: Max

Убираем условие:

{% if book.genre == 'sport' }
{% endif %}

Вместо фильтра на сайте:

<select class="filter" name="filter">
  {% for genre in Genres %}
    <option value="{{genre}}">{{genre}}</option>
  {% endfor %}
</select>

Создаём GET запрос:

<form method=GET>
  {{ Genre }}
</form>

С помощью GET запроса фильтруем значения в файле views.py:

def index(request):
    if request.GET:
        books = Book.objects.filter(genre__name__exact=request.GET['Genre']) #filter
    else:
        books = Book.objects.all()
    genres = GenreChoiceField()
    context = {
        'Books':books,
        'Genre':genres,
    }
    return render(request, 'index.html', context)
→ Ссылка