Форма поиска Django не представляет ценности - PullRequest
0 голосов
/ 13 мая 2018

У меня есть форма поиска в моем приложении django.Я хочу добавить параметр фильтра, поэтому я добавляю переключатель для фильтрации по имени в алфавитном порядке по возрастанию и по убыванию.Значение для поиска пропускается, но значение переключателя равно

    <form method='GET' action='{% url "search:catalog-query" %}' class="form my-2 my-lg-0 search-form">
  <div class='input-group'>
    <input class="form-control" type="text" placeholder="Search" name='q' aria-label="Search" value='{{ request.GET.q }}'>

    <span class='input-group-btn'>
        <button class="btn btn-outline-success" type="submit">Search</button>
    </span>
    </div>
    <div>
        Sort Name: 
        <label for="id_sort_up">Ascending</label><input type="radio" name="name_sort" id="id_sort" value='{{ request.GET.name_sort }}'>
        <label for="id_sort_down">Descending</label><input type="radio" name="name_sort" id="id_sort" value='{{ request.GET.name_sort }}'>
    </div>
</form>

urls.py

url(r'^catalog/$', SearchCatalogView.as_view(), name='catalog-query'),

view.py

class SearchCatalogView(ListView):
template_name = "search/view-catalog.html"
print('search catalog')

def get_context_data(self, *args, **kwargs):
    context = super(SearchCatalogView, self).get_context_data(*args, **kwargs)
    query = self.request.GET.get('q')
    context['query'] = query
    return context

def get_queryset(self, *args , **kwargs):
    print('get_queryset')
    request = self.request
    method_dict = request.GET
    query = method_dict.get('q', None) # method_dict['q']
    print(method_dict)
    if query is not None:
        return AAAA.objects.search(query)
    return AAAA.objects.features()

КогдаЯ печатаю method_dict, я получаю <QueryDict: {'q': ['searched_option'], 'name_sort': ['']}> независимо от того, какую радио-кнопку я выбираю.

1 Ответ

0 голосов
/ 13 мая 2018
 Sort Name:
    <label for="id_sort_up">Ascending</label>
    <input type="radio" name="name_sort" id="id_sort_up" value='Ascending'>
    <label for="id_sort_down">Descending</label>
    <input type="radio" name="name_sort" id="id_sort_down" value='Descending'>

даст method dict <QueryDict: {'q': ['searched_option'], 'name_sort': ['Ascending']}> или же method dict <QueryDict: {'q': ['searched_option'], 'name_sort': ['Descending']}>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...