У меня есть форма поиска, основанная на шаблоне формы поиска администратора:
{% load adminmedia %}
{% load i18n %}
{% if cl.search_fields %}
<div id="toolbar"><form id="changelist-search" action="." method="get">
<div><!-- DIV needed for valid HTML -->
<label for="searchbar"><img src="{% admin_media_prefix %}img/admin/icon_searchbox.png" alt="Search" /></label>
<input type="text" size="40" name="{{ SEARCH_VAR }}" value="{{ search_string|escape }}" id="searchbar" />
<input type="submit" value="{% trans 'Search' %}" />
{% if show_result_count %}
<span class="small quiet">{% blocktrans count cl.search_found_num as counter %}{{ counter }} result{% plural %}{{ counter }} results{% endblocktrans %} (<a href="?{% if cl.is_popup %}pop=1{% endif %}">{% blocktrans with cl.search_total_num as full_result_count %}{{ full_result_count }} total{% endblocktrans %}</a>)</span>
{% endif %}
{% for pair in cl.params.items %}
{% ifnotequal pair.0 search_var %}<input type="hidden" name="{{ pair.0 }}" value="{{ pair.1 }}"/>{% endifnotequal %}
{% endfor %}
</div>
</form></div>
<script type="text/javascript">document.getElementById("searchbar").focus();</script>
{% endif %}
Когда запрос отправлен, текст поиска правильно передается в строку запроса, но, к сожалению, он избавляетсячто-нибудь еще, что могло быть там.Например, если у меня есть URL-адрес www.example.com/?a=whatever&b=something
, после отправки поиска он становится www.example.com/?q=searchtext
, а не www.example.com/?a=whatever&b=something&q=searchtext
.Я почти уверен, что проблема как-то связана с атрибутом «action» формы, но я недостаточно хорошо разбираюсь в HTML, чтобы точно определить, каким он должен быть.
Редактировать: проблема решена,Я просто добавил скрытые поля в форму HTML, в которых сохранились значения, которые я хотел сохранить.