Как передать параметр страницы в тег шаблона Django url?

Я создаю простое поисковое приложение. У меня есть модель с некоторыми данными, а индексная страница - это просто строка поиска, которая ищет результаты по этой модели. Я создаю форму, используя просто HTML, а не правильную Django Form.

index.html:

<form method="get" action="{% url 'core:search' %}?page=1&q={{ request.GET.q }}">
   <div class="form-floating mb-3">
      <input type="search" class="form-control" id="floatingInput" name="q" value="{{ request.GET.q }}">
      <label for="floatingInput">Type your search</label>
   </div>
   <button class="w-100 btn btn-lg btn-primary" type="submit">Search</button>
</form>

Результаты постраничные, поэтому мне нужно, чтобы url, запрашиваемый формой, был http://127.0.0.1:8000/search/?page=1&q=query, query - это поисковый запрос, введенный в input. Но то, что я написал в параметре action в форме, не работает так, как я ожидал: несмотря на то, что написано action="{% url 'core:search' %}?page=1&q={{ request.GET.q }}, запрашиваемый URL просто http://127.0.0.1:8000/search/?q=query. Параметр page просто не отображается.

Я написал page=1, потому что, как и результат поиска, первая запрашиваемая страница всегда первая.

Представление, которое обрабатывает этот запрос - search_view. Я помещаю это ниже просто как дополнительную информацию, но я думаю, что проблема заключается в моем непонимании тега шаблона url в параметре формы action.

search_view:

def search_view(request):
    posts = Post.objects.all()
    query = request.GET.get('q')
    page_num = request.GET.get('page')

    paginator = Paginator(posts.annotate(
        search=SearchVector('post_title', 'post_subtitle'),
    ).filter(search=query).order_by('post_title'), 15)

    num_results = paginator.count
    num_pages = paginator.num_pages

    try:
        posts = paginator.page(page_num)
    except PageNotAnInteger:
        posts = paginator.page(1)
    except EmptyPage:
        posts = paginator.page(paginator.num_pages)

    context = {
        'posts': posts,
        'num_results': num_results,
        'num_pages': num_pages,
        'page_range': paginator.page_range,
    }

    return render(request, 'core/search.html', context)

Как сделать так, чтобы запрашиваемый URL имел вид http://127.0.0.1:8000/search/?page=1&q=query ?

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