Как использовать нумерацию страниц после запроса результатов? - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь сделать поисковый функционал с 2 параметрами.Все отлично работает, пока я не хочу использовать нумерацию страниц.Я проверял это, показывая только 1 элемент на странице.Это работает, пока я не хочу изменить страницу.

Когда я изменяю страницу, я не получаю результатов, хотя у меня есть записи, которые должны отображаться в БД.

Tbh Я думаю, чтоЯ должен как-то хранить параметры поиска и выполнять запрос при изменении страницы, но для меня это не имеет смысла.Как помогает разбиение на страницы, если мне все еще приходится выполнять запрос каждый раз, когда я меняю страницу?

Views.py

def cautare(req):
    intrari_oferte = Oferta.objects.get_queryset().distinct('denumireMeserie')
    context = {
        'title': "Cautare loc de munca | Best DAVNIC73",
        'oferte': intrari_oferte
    }
    return render(req, "../templates/pagini/cautare-loc-de-munca.html", context)

def locuridemunca(req):
    jud = req.POST.get('inputjudet')
    meserie = req.POST.get('inputmeserie')
    intrari_oferte = Oferta.objects.filter(judet=jud, denumireMeserie=meserie)
    pagIntrari = Paginator(intrari_oferte, 1)
    page = req.GET.get('page')
    pagina = pagIntrari.get_page(page)
    context = {
        'title': "Cautare loc de munca | Best DAVNIC73",
        'judet': jud,
        'meserie': meserie,
        'pagina': pagina
    }
    return render(req, "../templates/pagini/locuri-de-munca.html", context)

шаблон предосторожности

{% extends 'base.html' %}
{% load static %}
{% block content %}
            <div class="container container-centru">
                <h1 class="heading-contact">Cauta loc de munca</h1>
                <form class="form-contact" action="{% url 'locuridemunca' %}" method="POST">
                  {% csrf_token %}
                    <select name="inputjudet" class="selectare-judet-cautare" style="display: block;">
                        <option selected disabled>Selecteaza judetul!</option>
                        <optgroup label="Sud Muntenia">
                            <option value="Prahova">Prahova</option>
                            <option value="Dambovita">Dambovita</option>
                            <option value="Calarasi">Calarasi</option>
                            <option value="Arges">Arges</option>
                            <option value="Teleorman">Teleorman</option>
                            <option value="Giurgiu">Giurgiu</option>
                            <option value="Ialomita">Ialomita</option>
                        </optgroup>
                        <optgroup label="Centru">
                                <option value="Sibiu">Sibiu</option>
                                <option value="Alba">Alba</option>
                                <option value="Mures">Calarasi</option>
                                <option value="Covasna">Covasna</option>
                                <option value="Harghita">Harghita</option>
                                <option value="Brasov">Brasov</option>
                        </optgroup>
                    </select>
                    <select name="inputmeserie" class="selectare-meserie-cautare" style="display: block;">
                      <option selected disabled>Selecteaza meseria!</option>
                          {% for meserie in oferte %}
                           <option value="{{ meserie.denumireMeserie }}">{{ meserie.denumireMeserie }}</option>
                          {% endfor %}
                  </select>
                        <div class="form-group form-group-custom">
                            <input type="submit" value="Cauta!" class="btn btn-secondary btn-selectare-judet-cautare">
                        </div>                   
                </form>
            </div>              
{% endblock %}

шаблон locuri de munca

{% extends 'base.html' %}
{% load static %}
{% block content %}
            <div class="container container-munca">
                {% if pagina %}
                <h1 class="heading-munca">Locuri de munca de {{meserie}} din judetul {{judet}}</h1>
                <div class="row">
                {% for oferta in pagina %}
                    <div class="col-md-4">
                        <div class="card card-custom">
                            <div class="card-body">
                              <h5 class="card-title">{{oferta.denumireMeserie}}</h5>
                              <h6 class="card-subtitle mb-2 text-muted">{{oferta.agentEconomic}}</h6>
                              <p class="card-text">{{oferta.adresa}}</p>
                              <a href="#" class="card-link">Card link</a>
                            </div>
                        </div> 
                    </div>
                {% endfor %}
              </div>
              {% if pagina.has_other_pages %}
              <div class="row">
                <div class="col-md-12">          
                    <ul class="pagination">
                        {% if pagina.has_previous %}
                        <li class="page-item">
                          <a href="?page={{pagina.previous_page_number}}" class="page-link">&laquo;</a>
                        </li>
                        {% else %}
                        <li class="page-item disabled">
                            <a class="page-link">&laquo;</a>
                          </li>
                        {% endif %}
                          <li class="page-item active">
                            <a class="page-link">1</a>
                          </li>
                        {% if pagina.has_next %}
                        <li class="page-item">
                          <a href="?page={{pagina.next_page_number}}" class="page-link">&raquo;</a>
                        </li>
                        {% else %}
                        <li class="page-item disabled">
                            <a class="page-link">&raquo;</a>
                        </li>
                        {% endif %}
                    </ul>
                </div>
            </div>
            {% endif %}
                {% else %}
                <div class="row">
                    <div class="col-md-12">
                        <div class="card card-custom">
                            <div class="card-body">
                              <h5 class="card-title" style="text-align: center;">Nu am putut gasi rezultate!</h5>
                            </div>
                        </div> 
                    </div>
                </div>
                {% endif %}            
            </div>              
{% endblock %}

cautare = поиск, locuri de munca =рабочие места.По сути, я хочу сделать небольшое приложение, которое позволит кому-то искать существующую работу из БД в конкретном округе.(Джудет = округ)

Так как я могу сделать работу нумерации страниц?Прямо сейчас, когда я меняю страницу, я не получаю результатов.

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