如何在 Django 分页中将 ?page=1 重定向到 /?
Posted
技术标签:
【中文标题】如何在 Django 分页中将 ?page=1 重定向到 /?【英文标题】:How to redirect ?page=1 to / in Django paginations? 【发布时间】:2021-05-13 08:10:21 【问题描述】:我有点困惑为什么我的视图代码不起作用。每当 /?page=1 到 /
时,我都需要重定向我的看法:
blogs = models.BlogPost.objects.filter(is_active = True).order_by('-pub_date')
paginator = Paginator(blogs, 12)
page_number = request.GET.get('page')
#THIS IS THE PART THAT DOES NOT WORK#
if page_number == 1:
redirect('blog:blog', permanent=True)
try:
page_obj = paginator.page(page_number)
except PageNotAnInteger:
paginator.get_page(1)
except EmptyPage:
raise Http404('<h1>Page not found</h1>')
如果我输入 domain.com/?page=1 它应该重定向到 domain.com/
但它仍然是 domain.com/?page=1
我看不到我缺少什么,有人可以帮我吗?
【问题讨论】:
?page=1
有什么问题?
@AbdulAzizBarkat 搜索引擎优化人员说这是错误的,谷歌会看到两个相同的页面
request.GET.get('page')
会返回一个字符串,你将它与一个整数进行比较。
@AbdulAzizBarkat 我尝试与“1”进行比较,还尝试在 page_number 上使用 int()。没有任何效果
我测试过,工作正常...试试print(type(page_number), page_number)
你得到了什么?
【参考方案1】:
您可以使用redirecview 将任何网址重定向到另一个网址。例如Django URL Redirect
【讨论】:
以上是关于如何在 Django 分页中将 ?page=1 重定向到 /?的主要内容,如果未能解决你的问题,请参考以下文章