Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在search.html-django中添加分页_Django_Django Views_Django Templates - Fatal编程技术网

如何在search.html-django中添加分页

如何在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

如何在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_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页。下一回

如何做到这一点,谢谢:)

  • 将模板中的对象列表更改为页面对象:
  • 在SearchView中更正字段分页方式:
  • 在模板底部添加paginator,此类“搜索paginator”的所有页面都应包含您搜索的所有查询,例如:
  • {%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 %}