Django:使用正则表达式参数永久重定向URL

时间:2013-01-16 16:52:28

标签: django django-urls

我一直在寻找,无法找到我正在寻找的东西。 我找到了一种方法来重定向没有参数和关键字的网址 - 但是如何使用参数进行操作?

我想重定向一下:

(r'^andelsboligforeninger/(?P<page>[\d]*?)/$', 'cooperatives'),

到此:

(r'^liste-over-andelsboligforeninger/(?P<page>[\d]*?)/$', 'cooperatives'),

它应该是永久重定向。这对搜索引擎优化很有帮助,因为googlebot,我收到了很多调试邮件。

2 个答案:

答案 0 :(得分:1)

似乎我在django文档中找到了答案 - 毕竟我看起来并不是很难!

https://docs.djangoproject.com/en/1.1/ref/generic-views/

urlpatterns = patterns('django.views.generic.simple',
     ('^foo/(?P<id>\d+)/$', 'redirect_to', {'url': '/bar/%(id)s/'}),
)

答案 1 :(得分:0)

首先,您需要在网址中进行一些更改。使用url函数,然后为网址命名。您的网址中存在一些问题,例如您使用了?P但没有为捕获组命名。第二个[\d]*?不需要?,因为*表示可以有一个数字或根本没有数字。因此,在考虑了所有上述错误和技术后,您的网址应如下所示:

url(r'^liste-over-andelsboligforeninger/(?P<cooperative_id>\d*)/$', 'cooperatives', name="cooperatives")

然后在视图中,您可以使用reverse url resolution作为:

redirect(reverse('cooperatives', kwargs={'cooperative_id': some_id}))