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
Все остальные параметры теряются.