使用GET参数捕获URL

时间:2015-09-04 21:29:34

标签: django django-urls

我有旧的Wordpress网站。它有以下网址:

/?wpsc-product=abc

我在Django中建立了一个新网站,其网址如下:

/products/abc/

如何捕获旧网址并将其重定向到新网址?实际上,我不确定如何用参数捕获URL。

我希望能够编写每一个重定向,而不是正则表达式,因为我没有保留所有的slu ,,其中一些被更改。

1 个答案:

答案 0 :(得分:2)

您无法在?wpsc-product=abc中捕捉到urls.py等GET参数,但您可以编写一个视图来检查GET参数并重定向到新视图。

这是一个带有两个视图的简化urls.py。索引视图使用参数重定向请求并重定向它们(例如/?wpsc-product=abc),并且还处理没有任何参数的请求(即/),并返回呈现的索引模板。

urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^products/(?P<slug>[-\w]+)/$', views.view_product, name='view_product'),
]

from django.shortcuts import redirect, render

def index(request):
    # check for wpsc-product in GET params
    if 'wpsc-product' in request.GET:
        return redirect('view_product', slug=request.GET['wpsc-product'])
    else:
        # return the regular index template
        return render(request, 'index.html', {})