Django форма поиска с несколькими критериями поиска - PullRequest
0 голосов
/ 10 апреля 2020

на моем Django сайте У меня есть простая форма поиска. Пользователь может искать название группы или название альбома. Но если альбом и название группы совпадают, я бы хотел, чтобы пользователь был перенаправлен на страницу, где он мог выбирать между поиском группы или альбома. Надеюсь, кто-нибудь может мне помочь, я действительно застрял с этим. Большое спасибо!

это форма в HTML:

    <form method="post" action="{% url 'searches' %}">
      {%csrf_token%}
      <input type="text" name="srh" class= "form-control" placeholder="  Type Album or Band Name...">
      <!-- <button type="submit" name="submit">Search</button> -->
    </form>

views.py

class searchesView(TemplateView):
    template_name = "search/searches.html"

    def post(self, request, *args, **kwargs):
        print('FORM POSTED WITH {}'.format(request.POST['srh']))
        srch = request.POST.get('srh')
        if srch:
            sr = Info.objects.filter(Q(band__icontains=srch))
            sd = Info.objects.filter(Q(disco__icontains=srch))

            if sr.exists() and sd.exists():
                return render(self.request, 'search/disambigua.html')


            else:
                paginator = Paginator(sr, 10)
                page_number = request.GET.get('page')
                page_obj = paginator.get_page(page_number)

                return render(self.request, 'search/searches.html', {'sr':sr,
                                                                       'sd': sd,
                                                                       'page_obj': page_obj
                                                                       })

        else:
            return render(self.request, 'search/searches.html')

Страница "поисков", где перечислены результаты :

    {% if sd %}
    {% for y in sd %}
    <div class="container">

      <div class="album">

        {%if y.cover%}
        <img src= "{{y.cover.url}}" width="100%">
        {%endif%}
      </div>

      <div class="info">
        <table class="talbum" style="height:400px">
          <tr><th colspan="2"><h2>{{y.disco}}</h2></th></tr>
          <tr><td> Band: </td><td> {{y.band}} </td></tr>
          <tr><td> Anno: </td><td> {{y.anno}} </td></tr>
          <tr><td> Disco: </td><td> {{y.disco}} </td></tr>
          <tr><td> Etichetta: </td><td> {{y.etichetta_d}} </td></tr>
          <tr><td> Matrice: </td><td> {{y.matrice}} </td></tr>
        </table>

      </div>
    </div>
    {%endfor%}
    {%else%}


{% if sr %}
{% for k in sr %}
<div class="container_band">
  <div class=album_band>
    <!-- insert an image -->
    {%if k.cover%}
    <img src= "{{k.cover.url}}" width="100%">
    {%endif%}
  </div>

  <div class="info_band">
    <!-- insert table info -->
    <table>
      <tr><th><h2>{{k.band}}</h2></th></tr>
      <tr><td> Anno: </td><td> {{k.anno}} </td></tr>
      <tr><td> Disco: </td><td> {{k.disco}} </td></tr>
      <tr><td> Etichetta: </td><td> {{k.etichetta_d}} </td></tr>
      <tr><td> Matrice: </td><td> {{k.matrice}} </td></tr>
    </table>
  </div>
</div>
{%endfor%}

страница, на которую перенаправляется пользователь, если альбом и группа имеют одно и то же имя:

<a href="{%url 'searches'%}" >Band: {{ request.POST.srh }}</a><br/>
<a href="{%url 'searches'%}" >Album: {{ request.POST.srh }}</a>

И я не знаю, как отправить пользователя обратно после того, как он нажал на ссылку группы или ссылку на альбом

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