如何在search.html-django中添加分页
如何在search.html中创建分页 我想显示每页4帖子 我现在必须做什么?如何在search.html-django中添加分页,django,django-views,django-templates,Django,Django Views,Django Templates,如何在search.html中创建分页 我想显示每页4帖子 我现在必须做什么? 请帮忙,谢谢 这是my views.py: class SearchView(ListView): template_name = 'website_primary_html_pages/search.html' paginate_by = 20 count = 0 def get_context_data(self, *args, **kwargs): context = super().get_cont
请帮忙,谢谢 这是my views.py:
class SearchView(ListView):
template_name = 'website_primary_html_pages/search.html'
paginate_by = 20
count = 0
def get_context_data(self, *args, **kwargs):
context = super().get_context_data(*args, **kwargs)
context['count'] = self.count or 0
context['query'] = self.request.GET.get('q')
return context
def get_queryset(self):
request = self.request
query = request.GET.get('q', None)
if query is not None:
android_results = Android.objects.search(query)
linux_results = Linux.objects.search(query)
tech_results = Tech.objects.search(query)
mobile_results = Mobile.objects.search(query)
windows_results = Windows.objects.search(query)
# combine querysets
queryset_chain = chain(
android_results,
linux_results,
tech_results,
mobile_results,
windows_results
)
qs = sorted(queryset_chain,
key=lambda instance: instance.pk,
reverse=True)
self.count = len(qs) # since qs is actually a list
return qs
return Android.objects.none() # just an empty queryset as default
这是我的search.html:
{% for object in object_list %}
{% with object|class_name as klass %}
{% if klass == 'Mobile' %}
<div class="card-deck">
<div class="card mb-3" style="max-width: 800px;">
<div class="row no-gutters">
<div class="col-md-4">
<a href='Mobile/{{ object.slug }}'><img style="height:100%;width:100%;border-radius:6.5px;" src="{{ object.get_image }}" class="rounded float-right" alt="..."></a>
</div>
<div class="col-md-8">
<div class="card-body">
<a href='Mobile/{{ object.slug }}'> <h5 class="card-title" id="primary_site_pages_app_name_control"> <b>{{ object.name }}</b></h5></a>
<p class="card-text" id="font_control_for_all_pages">{{ object.app_contect|truncatechars_html:153|safe}}</p>
</div>
<div class="card-footer">
<small class="text-muted" id="date_post_control">{{ object.post_date}}</small>
<small class="firstsmall"><a class="bg-orange" href="{% url 'mobile' %}" id="tag_name_control">هواتف</a></small>
</div>
</div>
</div>
</div>
</div>
<hr>
{% elif klass == 'Linux' %}
<div class="card-deck">
<div class="card mb-3" style="max-width: 800px;">
<div class="row no-gutters">
<div class="col-md-4">
<a href='Linux/{{ object.slug }}'><img style="height:100%;width:100%;border-radius:6.5px;" src="{{ object.get_image }}" class="rounded float-right" alt="..."></a>
</div>
<div class="col-md-8">
<div class="card-body">
<a href='Linux/{{ object.slug }}'> <h5 class="card-title" id="primary_site_pages_app_name_control"> <b>{{ object.name }}</b></h5></a>
<p class="card-text" id="font_control_for_all_pages">{{ object.app_contect|truncatechars_html:153|safe}}</p>
</div>
<div class="card-footer">
<small class="text-muted" id="date_post_control">{{ object.post_date}}</small>
<small class="firstsmall"><a class="bg-orange" href="{% url 'linux' %}" id="tag_name_control">لينكس</a></small>
</div>
</div>
</div>
</div>
</div>
<hr>
{% else %}
{% endif %}
{% endwith %}
{% empty %}
<div class='row'>
<div class='col-12 col-md-6 mx-auto my-5 py-5'>
<form method='GET' class='' action="{% url 'search' %}">
<div class="input-group form-group-no-border mx-auto" style="margin-bottom: 0px; font-size: 32px;">
<span class="input-group-addon cfe-nav" style='color:#000'>
<i class="fa fa-search" aria-hidden="true"></i>
</span>
<input type="text" name="q" data-toggle="popover" data-placement="bottom" data-content="Press enter to search" class="form-control cfe-nav mt-0 py-3" placeholder="Search..." value="" style="" data-original-title="" title="" autofocus="autofocus">
</div>
</form>
</div>
</div>
{% endfor %}
{%for object_list%}
{%对象|类_名称为klass%}
{%如果klass=='Mobile%}
{{{object.app_contect}truncatechars_html:153 | safe}
{{object.post_date}
{%elif klass=='Linux%}
{{{object.app_contect}truncatechars_html:153 | safe}
{{object.post_date}
{%else%}
{%endif%}
{%endwith%}
{%empty%}
{%endfor%}
我必须在html页面和views.py中添加什么
例如,我想要此显示,如以下示例:
第2页,共3页。下一回
如何做到这一点,谢谢:)
{%if已分页%}
{%如果页面_obj.has_previous%}
{%endif%}
{page_obj.paginator.page_range%}
{%if page_obj.number==num%}
{%elif num>page_obj.number | add:'-3'和num
{% for object in page_obj %}
class SearchView(ListView):
template_name = 'website_primary_html_pages/search.html'
paginate_by = 4
{% if is_paginated %}
{% if page_obj.has_previous %}
<a class="btn btn-outline-info mb-4" href="?page=1">First</a>
<a class="btn btn-outline-info mb-4" href="?page={{ page_obj.previous_page_number }}{% for k,v in request.GET.items %}{% if k != 'page' %}&{{ k }}={{ v }}{% endif %}{%endfor%}">Previous</a>
{% endif %}
{% for num in page_obj.paginator.page_range %}
{% if page_obj.number == num %}
<a class="btn btn-info mb-4" href="?page={{ num }}{% for k,v in request.GET.items %}{% if k != 'page' %}&{{ k }}={{ v }}{% endif %}{%endfor%}">{{ num }}</a>
{% elif num > page_obj.number|add:'-3' and num < page_obj.number|add:'3' %}
<a class="btn btn-outline-info mb-4" href="?page={{ num }}{% for k,v in request.GET.items %}{% if k != 'page' %}&{{ k }}={{ v }}{% endif %}{%endfor%}">{{ num }}</a>
{% endif %}
{% endfor %}
{% if page_obj.has_next %}
<a class="btn btn-outline-info mb-4" href="?page={{ page_obj.next_page_number }}{% for k,v in request.GET.items %}{% if k != 'page' %}&{{ k }}={{ v }}{% endif %}{%endfor%}">Next</a>
<a class="btn btn-outline-info mb-4" href="?page={{ page_obj.paginator.num_pages }}{% for k,v in request.GET.items %}{% if k != 'page' %}&{{ k }}={{ v }}{% endif %}{%endfor%}">Last</a>
{% endif %}
{% endif %}