python - My Django apps search function wont work from the tags page -
my site search doesn't work tags_list.html. think has pagination set up. can't pinpoint it. if run search tags_list.html. no results. if site index works fine. heres code.
my tags code views.py:
def tag_list(request, slug=none): instance = get_object_or_404(tag, slug=slug) ins = instance.post_set.all() query = request.get.get("q") if query: ins = ins.filter( q(title__icontains=query) | q(content__icontains=query) | q(user__first_name__icontains=query) | q(user__last_name__icontains=query) ).distinct() paginator = paginator(ins, 1) page_request_var = "tags" page = request.get.get(page_request_var) try: queryset = paginator.page(page) except pagenotaninteger: queryset = paginator.page(1) except emptypage: queryset = paginator.page(paginator.num_pages) context = { "queryset": queryset, "paginator": paginator, "page_request_var": page_request_var, } return render(request, "posts/tag_list.html", context) the pagination:
<div class="text-center" style="margin-bottom: 20px"> <ul class="pagination"> {% if queryset.has_previous %} <li><a href="?tags=1"><<</a></li> <li><a href="?{{ page_request_var }}={{ queryset.previous_page_number }} {% if request.get.q %}&q={{ request.get.q }}{% endif %}">prev</a></li> {% endif %} {% in paginator.page_range %} <li {% if page_obj.number == %} class="active" {% endif %}><a href="?tags={{i}}">{{i}}</a><li> {% endfor %} {% if queryset.has_next %} <li><a href="?{{ page_request_var }}={{ queryset.next_page_number }} {% if request.get.q %}&q={{ request.get.q }}{% endif %}">next</a></li> <li><a href="?tags={{ queryset.paginator.num_pages }}">>></a></li> {% endif %} </ul> urls.py
url(r'^tag/(?p<slug>[\w-]+)/$', tag_list, name="tag_index"), and how looks in url
http://localhost:8000/posts/tag/third-slug/?q=tesla any on how syntactically correct welcome. thanks
i figured out. ins changed query set , worked
def tag_list(request, slug=none): instance = get_object_or_404(tag, slug=slug) ins = instance.post_set.all() queryset_list = post.objects.active() query = request.get.get("q") if query: queryset_list = queryset_list.filter( q(title__icontains=query) | q(content__icontains=query) | q(user__first_name__icontains=query) | q(user__last_name__icontains=query) ).distinct() paginator = paginator(queryset_list, 1) page_request_var = "tags" page = request.get.get(page_request_var) try: queryset = paginator.page(page) except pagenotaninteger: queryset = paginator.page(1) except emptypage: queryset = paginator.page(paginator.num_pages) context = { "queryset": queryset, "paginator": paginator, "page_request_var": page_request_var, } return render(request, "posts/tag_list.html", context)
Comments
Post a Comment