У меня есть панель поиска начальной загрузки, и я хочу, чтобы она искала список всех тегов в базе данных. Теги похожи на страницу 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 %}