Сохранять предыдущий параметр запроса в URL-адресе при отправке формы GET в django - PullRequest
0 голосов
/ 13 июля 2020

У меня есть URL searchchoices /? Q = sometext & paginate_by = 2 . Когда я изменяю значение paginate_by на 3 в моей форме, я получаю URL searchchoices /? Q = & paginate_by = 3 (обратите внимание на отсутствующее значение для параметра q).

Как сохранить значение этого параметра в строке QUERY при отправке запроса?

Мой шаблон выглядит следующим образом:

{% load template_tags %}

<form method="get">
    <input id="q" type="text" placeholder="your search...">
    
    <label for="paginate_by">Number of options per page:</label>
    <select name="paginate_by" id="paginate_by">
       <option value="2">2</option>
       <option value="3">3</option>
       <option value="5">5</option>
    </select>

    <input type="submit" value="Paginate">
</form>           

My template_tags.py

from django import template

register = template.Library()

@register.simple_tag(takes_context=True)
def query_transform(context, **kwargs):
    query = context['request'].GET.copy()
    for k, v in kwargs.items():
        query[k] = v

    return query.urlencode()

Также в моем views.py есть этот фрагмент

# I believe this is the root of the hassle. 
q = request.GET.get('q', None) 

Пожалуйста, как я могу это сделать? PS: Новичок в django.

...