Как передать значение в поисковый запрос - PullRequest
0 голосов
/ 01 марта 2020

Я работаю с двумя страницами и хочу нажать a tag на одной странице, чтобы вставить значение в поисковый запрос на другой странице.

Итак, вот мои views.py:

def bikes_all(request):
  item_list = Bike.objects.all()

  category_q = request.GET.get('cat')

  if category_q:
      item_list = item_list.filter(category__pk=category_q)

  paginator = Paginator(item_list, 10)

  page = request.GET.get('page')

  try:
      items = paginator.page(page)
  except PageNotAnInteger:
      items = paginator.page(1)
  except EmptyPage:
      items = paginator.page(paginator.num_pages)

  context = {
    'items': items,
  }

  return render(request, "bikes_all.html", context)

и мой шаблон:

            <form method="GET" action="{% url 'core:bikes_all' %}">
            <div class="form-row ">
            <div class="form-group col-5">
                <label for="category">Category</label>
                <select id="cat" class="form-control" name="cat">
                    <option value="" {% if not request.GET.cat %} selected {% endif %}>Choose...</option>
                    {% for cat in category_list %}
                    <option value="{{ cat.pk }}" {% if request.GET.cat == cat.pk|slugify %} selected {% endif %}>
                        {{ cat }}</option>
                    {% endfor %}
                </select>
            </div>
        </div>
        <div class="form-row">
            <button type="submit" class="btn btn-outline-primary btn-md">Search</button>
        </div>
    </form>

и вот a tag с другой страницы:

            <div class="col-md-4 overlay zoom">
            <a href="{% url 'core:bikes_all'  %}">
                <div style="position:relative;">
                    <img src="{% static '/img/category_choice/bike33.png' %}" class="img-fluid">
                    <div class="card-img-overlay">
                        <h2 class="card-title"
                            style="text-align: center; color: aliceblue; position: absolute; bottom:5px;">
                            Road Bikes
                        </h2>
                    </div>
                </div>
            </a>
        </div>

Так что у меня есть {% url 'core:bikes_all' %} в моем href, который принимает значение bikes_all.html, но я бы также хотел передать поисковый запрос в этом разделе. Я пытался сделать {% url 'core:bikes_all' request.GET.cat=2 %} или {% url 'core:bikes_all' category_q=2 %}, но это не сработало.

Поисковый запрос выглядит так, когда я фильтрую результаты по категории http://localhost:8000/bikes/all?cat=1 Поэтому моя цель - перенаправить пользователя на http://localhost:8000/bikes/all?cat=2, когда он нажимает на a tag на первой странице.

1 Ответ

2 голосов
/ 01 марта 2020

Вы получаете параметры GET в своем запросе, поэтому вам нужно передать этот параметр GET в ваш URL следующим образом:

https://url?parameter=2

, поэтому установите cat=i в вашем bikes_all URL:

{% url 'core:bikes_all' %}?cat=i
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...