как добавить сообщение с условием, когда для l oop не встречается с помощью поиска? - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь добавить сообщение в шаблон, когда поиск еще не находится в БД. Итак, есть представление из приложения tour_store, которое извлекает данные из базы данных и загружает в шаблон destination.html:

функция tour_store / destinations:

def destinations(request):
    destinations = Destinations.objects.all()
    return render(request, 'destinations.html', {'destinations': destinations})

и search / Функция do_search:

def do_search(request):
    if request.method == "GET":
        # 'q' is the name in the search form // tour_title is the name that will be searched from Destination model
        destinations = Destinations.objects.filter(location__icontains=request.GET['q'])
        return render(request, 'destinations.html', {'destinations': destinations})

форма поиска: main.html:

<form action="{% url 'search' %}" method="GET" class="header__search">
                <div class="input-group search-input">
                  <!-- Change the search input phrase here -->
                  <input type="text" name="q" placeholder="Search for `Thailand`." class="form-control">
                  <div class="input-group-append">
                    <button class="btn btn-warning" type="submit" name="button"><i class="fas fa-search"></i></button></div>
                </div>
              </form>

destination.html

{% for destination in destinations %}


    {% if destination in destinations %}


  <div class="row" data-aos="fade-up" data-aos-anchor-placement="top-bottom" data-aos-duration="1000">
    <div class="col-md-7">
      <a href="{% url 'destinationDetails' id=destination.id %}">
        <img class=" embed-responsive img-fluid rounded mb-3 mb-md-0" src="{{ destination.image.url}}"  alt="">
      </a>
    </div>
    <div class="col-md-5 ">
      <h3>{{destination.tour_title}}</h3>
      <h6>{{destination.location}}</h6>
      <p >{{destination.description|safe|slice:":150"}}...</p>

      <p class="text-secondary"><i class="text-info far fa-calendar-check"></i> <strong>{{destination.booking_start_date}} -  {{destination.booking_end_date}}</strong></p>

      <h3>€ {{destination.price}}</h3>
      <a class="btn btn-info rounded py-2 btn-block" href="{% url 'destinationDetails' id=destination.id %}"> View Retreat
      </a>
    </div>
  </div>
    <hr>


<--Here I am trying to add a message if the search is not met -->
{% else %}
    <h1>We dont have this destination yet!</h1>
    {% endif %}


  {% endfor %}

Однако, если я добавлю {% if not destination in destinations %} и поиск элемента, который находится в БД, я могу как-нибудь загрузить сообщение. В чем будет проблема?

1 Ответ

0 голосов
/ 17 июня 2020

Я нашел ответ. После того как я попытался найти то, что находится внутри переменной destinations в функции do_search, я понял, что это пустой набор запросов. Поэтому, ища это, я нашел ответ, который просто включает тег `{% empty%} в конце for l oop.

  <div class="row" data-aos="fade-up" data-aos-anchor-placement="top-bottom" data-aos-duration="1000">
    <div class="col-md-7">
      <a href="{% url 'destinationDetails' id=destination.id %}">
        <img class=" embed-responsive img-fluid rounded mb-3 mb-md-0" src="{{ destination.image.url}}"  alt="">
      </a>
    </div>
    <div class="col-md-5 ">
      <h3>{{destination.tour_title}}</h3>
      <h6>{{destination.location}}</h6>
      <p >{{destination.description|safe|slice:":150"}}...</p>

      <p class="text-secondary"><i class="text-info far fa-calendar-check"></i> <strong>{{destination.booking_start_date}} -  {{destination.booking_end_date}}</strong></p>

      <h3>€ {{destination.price}}</h3>
      <a class="btn btn-info rounded py-2 btn-block" href="{% url 'destinationDetails' id=destination.id %}"> View Retreat
      </a>
    </div>
  </div>
    <hr>



    {% empty %}
    <h1>Sorry, we don't have this destination yet!</h1>



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