Поиск бара в Джанго? - PullRequest
       18

Поиск бара в Джанго?

0 голосов
/ 10 апреля 2019

У меня есть панель поиска начальной загрузки, и я хочу, чтобы она искала список всех тегов в базе данных. Теги похожи на страницу Facebook или Reddit теги.

Когда я отправляю свой запрос, я хочу, чтобы URL включал GET-параметр: ?q="typeword", но приложение должно перенаправить на новую страницу и сохранить параметр тегов при этом. Как я могу это сделать?

Я пытался использовать GET-запрос и paginator, но, похоже, ничего не работает. Я могу добавить новый URL "search /", и тогда он будет работать, но только с этим URL.

models.py

class Tag(models.Model):
    path = models.CharField(max_length=37,default=0)
    name = models.CharField(max_length=35)
    description = models.CharField(max_length=200)
    image = models.ImageField(default='default.jpg',upload_to='tag_pics')

    def __str__(self):
        return self.path

views.py

def search(request):

    q = request.GET.get('q',None)
    items=''

    if q is None or q is "":
        items = Tag.objects.all()

    elif q is not None:
        items = Tag.objects.filter(name__contains=q)

    paginator = Paginator(items, 3)
    page = request.GET.get('page')
    items = paginator.get_page(page)

    title = "Search"

    return render(request, 'blog/search.html',{'items': items, 'title': title})

search.html

{% extends 'blog/base.html' %}

{% block content %}
  {% if items %}
    <p class="search-count">Found 
      <strong> 
        {{ items.paginator.count }}
      </strong> 
      result{{ items.paginator.count|pluralize }}
    </p>
    {% for i in items %}
      {{ i.path }}
    {% endfor %}
  {% elif request.GET.q %}
    <p class="search-no-results">
      No results for "<strong>{{ request.GET.q }}"
    </p>
  {% endif %}
{% endblock %}
...