301 在 urls.py 中使用查询参数“?page=”重定向

问题描述 投票:0回答:1

Django 1.10 中的重复页面有一些问题。 当urls.py有如下代码时:

urlpatterns = [
    ...
    url(r'^(?P<category_slug>[-\w]+)$', views.category_views, name='cat'),
    ...
]

views.py的一部分

def category_views(request, category_slug):
    category_name = get_object_or_404(Category, slug=category_slug)

models.py的一部分

class Category(models.Model):
    slug = models.SlugField(max_length=50, unique=True, blank=False, verbose_name=u"URL")

Pages site.com/category_slug?page=5site.com/category_slug/?page=5 显示相同的内容。

然后我在urls.py中添加了下一个重定向

urlpatterns = [
    ...
    url(r'^(?P<category_slug>[-\w]+)$', views.category_views, name='cat'),
    url(r'^(?P<category_slug>[-\w]+)/$', RedirectView.as_view(pattern_name='cat', permanent=True)),
    ...
]

现在我已经从site.com/category_slug/?page=5重定向到site.com/category_slug(没有查询参数),但需要site.com/category_slug?page=5

请告诉我在哪里修复它

django redirect django-urls
1个回答
0
投票

根据 1.10 的文档 您只需将以下关键字参数

query_string = True
添加到您的网址:

url(
    r'^(?P<category_slug>[-\w]+)/$',
    RedirectView.as_view(
        pattern_name='cat', 
        permanent=True,
        query_string=True
    )
 ),
© www.soinside.com 2019 - 2024. All rights reserved.