我是Django初学者,所以我被困在基于类的分页中,我已经关注了很多关于分页的帖子,但不幸的是,我无法解决这个错误。
如果我在搜索框中搜索“爱”,URL就会变成这样
http://127.0.0.1:8000/search/?q=love
结果显示了分页功能,但当我点击下一个分页按钮时,查询get remove,url变成这样
http://127.0.0.1:8000/search/?page=2
错误提示:无效页面(2):该页面不包含任何结果
谁能告诉我哪里错了?谢谢
Views.py
from django.views import generic
from .models import Album, Song
from django.db.models import Q
class Search(generic.ListView):
template_name = 'music/search.html'
paginate_by = 5
def get_queryset(self, *args, **kwargs):
queryset_list = Song.objects.all()
query = self.request.GET.get('q')
if query:
queryset_list = queryset_list.filter(
Q(song_title__icontains=query)|
Q(file_type__icontains=query)
).distinct()
if not query:
queryset_list = Song.objects.none()
return queryset_list
return queryset_list
搜索html
{% if object_list %}
<h1>Search result..</h1>
{% for i in object_list %}
<p>{{i.song_title}}</p>
{% endfor %}
<!-- pagination-->
{% if is_paginated %}
<ul class="pagination">
{% if page_obj.has_previous %}
<li><a href="?page={{ page_obj.previous_page_number }}">«</a></li>
{% else %}
<li class="disabled"><span>«</span></li>
{% endif %}
{% for i in paginator.page_range %}
{% if page_obj.number == i %}
<li class="active"><span>{{ i }} <span class="sr-only">(current)</span></span></li>
{% else %}
<li><a href="?page={{ i }}">{{ i }}</a></li>
{% endif %}
{% endfor %}
{% if page_obj.has_next %}
<li><a href="?page={{ page_obj.next_page_number }}">»</a></li>
{% else %}
<li class="disabled"><span>»</span></li>
{% endif %}
</ul>
{% endif %}
<!-- end pagination-->
{% else %}
<h1>no result found..</h1>
{% endif %}
urls.py
from django.conf.urls import url
from music import views
url(r'^search/$', views.Search.as_view(), name='search')
您没有在链接中包含您的搜索词,因此您可以看到URL不包含它,因此get_queryset
返回一个空集。你应该确保你在任何地方都包括它:
<a href="?q={{ request.GET.q }}&page={{ page_obj.previous_page_number }}">
所有其他链接也是如此。
第一wp_query后WordPress分页不工作。我正在对第一个wp_query对象返回的数据执行一些操作。但是在第二次查询之后,分页不起作用。 我尝试从其中一个查询中删除“paged”参数,该参数要么给出错误的结果,要么没有分页。例如,此查询第一次返回28个结果,但第二次查询后仅返回6个结果。如果我从第一个查询中删除'paged'参数并将其添加到第二个查询中,那么当它应该返回3页时,只返回一页
我正在为listview的每个Iten使用listview实现复选框。我遇到的问题是,当我点击任何一个复选框时,当我滚动时,其他一些没有点击的复选框也会被随机点击。我在SO上通过了许多链接,但它并没有解决我的问题。 我的xml文件是
我在数据服务器端处理中的代码有问题。问题在于分页。我的数据给我3页,但只有第一次点击分页工作的数字(不管我点击了什么数字)。在此之后,任何数量的任何点击都只会使表格内容闪烁。表中没有任何变化。 谁能帮我提些建议做什么?非常感谢。 编辑: 刚刚修好了。请核对答案。 我的代码:
我使用了绝对定位(setBounds和null布局),现在开始练习布局管理器,这段代码是用gridbag布局的,但是很少组件没有显示,或者是单元格有一些问题,或者是其他的东西,请帮助!
我试图创建一个基于警报的应用程序。我正在使用。问题是这一点都不可靠。在某些设备中,它起作用…在其他设备中,它的工作方式…而在其他设备中,它根本不起作用。 这是我的闹钟课: 这是我的OneTimeAlarm,只发射一次就不再发射的警报。 这是我的日常警报器,警报器一天只响一次。
我正在使用ora2pg将我的数据从oracle迁移到postgres数据库。作为第一步,我要导出模式。我发现生成的sql文件有许多错误,如重复的sql语句,函数中的重复参数,这些错误在执行sql时失败。我正在尝试手动更正生成的sql文件中的这些错误。是否有更好的方法或避免sql文件中的此错误。实际上,我只需要将数据从oracle传输到postgres数据库。但不知道这是否可能。我使用的是ORA2P