为什么这个Django匹配在urls.py中不起作用?

时间:2011-03-27 02:24:35

标签: python regex django

(r'^signup(.*)password=goodbye$','abc.wall.views.register_goodbye'),

这不起作用。它不匹配!即使我点击这个:

www.mydomain.com/signup?password=goodbye

它与它不匹配,只是简单地跳过它。为什么呢?

注意:我知道匹配GET参数不是一个好习惯。然而,它是强制性的,我必须这样做,因为我无法改变代码。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

网址与查询参数不匹配。他们从请求中获取路径(在?之前的所有内容),并尝试匹配您的URL正则表达式。

您需要做的是在视图中处理GET参数,并在需要时从那里路由到其他功能。例如:

request: http://www.mydomain.com/signup/?password=goodbye 

(r'^signup/$','abc.wall.views.signup_front')

def signup_front(self, request):
    query_param = request.GET.get('password', None)
    if query_param == "goodbye":
        return signup_goodbye(request)
    # other stuff here

def signup_goodbye(self, request):
    # blah
    # return render_to_response(..)