Django - url действия формы не перенаправляет с параметрами GET

На моей веб-странице есть 3 формы, где ни один, один или все входы формы могут появляться в качестве параметров в url.

Формы возвращают значения для:

  • сортировка предметов
  • выбор метрики для элементов
  • номер страницы

Я использую сессии для сохранения всех этих параметров, что предотвращает их перезапись друг другом, а затем я объединяю их в строку параметров url, которая затем передается в контекст шаблонов.

Проблема в том, что при использовании <form action="{% url watchlist %}{{url_parameter_string}}"> в url возвращается только параметр из соответствующей формы, и не возвращаются все параметры, хранящиеся внутри url_parameter_string.

views.py - представление списка часов

if "url_params" in request.session:
    for k, v in request.GET.items():
        request.session["url_params"][k] = v
else:
    request.session["url_params"] = {}

request.session.modified = True

url_param_string = "?" + "".join([f"{k}={v}&" 
for k, v in request.session["url_params"].items()])[:-1]

context["url_param_string"] = url_param_string

url_param_string:

?graph-metric=max_price&sort-field=total_quantity-asc&page=1&view=items

>

html

<form action="{% url view %}{{url_param_string}}" method="GET">
    <label for="graph-data-form">Graph Data</label>
    <select onchange="this.form.submit()" name="graph-metric">
        {% for graph_option in graph_options %}
            <option value="{{graph_option.value}}">{{graph_option.text}}</option>
        {% endfor %}
    </select>
</form>

когда форма отправлена

url

.../portfolio/?graph-metric=max_price

Все остальные параметры теряются.

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