Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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
Python 如何使用django对django筛选查询进行分页?_Python_Django_Pagination_Django Filter - Fatal编程技术网

Python 如何使用django对django筛选查询进行分页?

Python 如何使用django对django筛选查询进行分页?,python,django,pagination,django-filter,Python,Django,Pagination,Django Filter,我一直在使用django filter应用程序过滤模型。当我尝试使用Django的paginator从过滤查询分页时,它不起作用。所有结果都放在一页上,尽管页码在底部。当我点击另一个页码时,结果将在“放到一页”时未过滤 有谁知道解决这个问题的办法吗 views.py 搜索/user_list.html {%extends'base.html%} {%block content%} {%csrf_令牌%} {{filter.form.as_p} 搜寻 {filter.qs%中的视频为%s} {{

我一直在使用django filter应用程序过滤模型。当我尝试使用Django的paginator从过滤查询分页时,它不起作用。所有结果都放在一页上,尽管页码在底部。当我点击另一个页码时,结果将在“放到一页”时未过滤

有谁知道解决这个问题的办法吗

views.py 搜索/user_list.html
{%extends'base.html%}
{%block content%}
{%csrf_令牌%}
{{filter.form.as_p}
搜寻
    {filter.qs%中的视频为%s}
  • {{video.title}
  • {%endfor%}
{%if videos.has_其他_页面%}
    {%if videos.has_previous%}
  • {%else%}
  • « {%endif%} {videos.paginator.page_range%} {%if videos.number==i%}
  • {{i}(当前)
  • {%else%}
  • {%endif%} {%endfor%} {%if videos.has_next%}
  • {%else%}
  • » {%endif%}
{%endif%} {%endblock%}
您需要迭代分页器的
对象列表,而不是filterset的
.qs
属性

{% for video in videos.object_list %}
    <li>{{ video.title }}</li>
{% endfor %}
{%用于视频中的视频。对象\列表%}
  • {{video.title}
  • {%endfor%}
    您需要迭代分页器的
    对象列表,而不是filterset的
    .qs
    属性

    {% for video in videos.object_list %}
        <li>{{ video.title }}</li>
    {% endfor %}
    
    {%用于视频中的视频。对象\列表%}
    
  • {{video.title}
  • {%endfor%}
    我试过了,但是当我点击另一个页面时,结果是未过滤的。过滤器集不会在请求之间持久化,因此您需要复制“下一个”和“上一个”链接中的相关查询参数。您很可能需要在视图的
    get\u context\u data()
    方法中生成合适的
    next\u url
    prev\u url
    。我尝试过,但当我单击其他页面时,结果未被过滤。过滤器集不会在请求之间持久化,因此您需要在“next”和“上一个”链接。您很可能需要在视图的
    获取上下文数据()方法中生成合适的
    下一个url
    上一个url
    {% for video in videos.object_list %}
        <li>{{ video.title }}</li>
    {% endfor %}