В настоящее время у меня есть это представление, которое отправляет список жанров в шаблон для заполнения выпадающего списка:
class GenreSearch(generic.ListView):
template_name = 'games/genresearch.html'
context_object_name = 'genre_list'
def get_queryset(self):
return Genre.objects.order_by("name")
Это шаблон:
{% if genre_list %}
<div class="btn-group">
<button class="btn btn-secondary btn-lg dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Select Genre</button>
<div class="dropdown-menu scrollable-menu">
{% for genre in genre_list %}
<a class="dropdown-item" href="#">{{ genre.name }}</a>
{% endfor %}
</div>
</div>
{% endif %}
Теперь я хочу выбрать жанр из этого выпадающего списка, отправить его и использовать это представление для получения результатов, основанных на том, какой жанр представлен:
class GamesPageByGenre(generic.ListView):
template_name = 'games/allgames.html'
context_object_name = 'game_list'
def get_queryset(self):
#Return games whose genres include the genre id x
return Game.objects.filter(genres__id=10)
Так, если жанр 'действия' был выбран из выпадающего списка, отправьте его, получите идентификатор для действия жанра, а затем замените
genres__id=10
с genres__id=genreID