Как изменить переменную фильтра в представлении из шаблона Django?

У меня есть модель отзывов, в которой есть отзывы, сделанные пользователями. В представлении я делаю для нее пагинацию. Затем я фильтрую отзывы по переменной type = 'art' Как я могу изменить переменную фильтра для type = 'music' из шаблона, чтобы отображать выбранные отзывы? Как затем использовать all() для отображения всех отзывов? Должен ли я делать отдельные шаблоны для каждой переменной вида или есть более простой способ?

Мой view.py:

def viewrevs(request):
        rev = Reviews.objects.filter(type = 'art')
        paginator = Paginator(rev,2)
        page_number = request.GET.get('page')
        page_obj = paginator.get_page(page_number)
...

Мой шаблон.html

{% for rev in page_obj %}
        {{ rev.name }}
        {{ rev.size }}
        {{ rev.data }}
...
{% enfor %}

Поэтому вы можете использовать параметры запроса следующим образом domain/search/?type=art

Ваш URL может выглядеть следующим образом

urlpatterns = [
    path('domain/search/', views.CityListView.as_view()),
]

Тогда ваши взгляды:

def viewrevs(request):
    # Grab the type from the query param
    _type = request.GET.get('type','art')
    
    # Filter by the type
    rev = Reviews.objects.filter(type=_type)
    paginator = Paginator(rev,2)
    page_number = request.GET.get('page')
    page_obj = paginator.get_page(page_number)

Вы даже можете сделать подобное для пагинации, иметь параметр для page_size и page

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