我刚刚创建了一个url模式条目来将内容路由到我的注册视图,但该参数根本没有被传递,即使它明显在URL中。
我的网址格式:
url(r'^register/(?P<profile_type>\w+/?$)', 'userProfile.views.register'),
我的观点定义:
def register(request, profile_type=None):
我尝试加载的网址(不是真实的网址,而是示例):
http://example.com/register/user
当我在视图的开头设置pdb断点时,profile_type为None,但是url为http://example.com/register/user
我尝试运行re.match以查看正则表达式是否错误,我得到以下内容:
match = re.match(r'^register/(?P<profile_type>\w+/?$)', 'register/user')
match
<_sre.SRE_Match object at 0x1004d48a0>
match.groupdict()
{'profile_type': 'user'}
显然,正则表达式匹配用户&#39; URL的一部分,但它没有通过。我会喜欢这方面的帮助。
urls.py包含其他类似的模式,这些模式正常运行:
url(r'^user/(?P<profile_id>\d+/?$)', 'userProfile.views.registeredUser'),
视图位于正确的位置并且正在被正确调用,但参数未被传递。
实际上,我在文件中有一个先前的模式,如下所示:
url(r'^register', 'userProfile.views.register'),
我认为在第二种模式之前被调用并弄乱了......
答案 0 :(得分:0)
尝试在设置中将APPEND_SLASH设置为False。有关详细信息,请参阅that
答案 1 :(得分:0)
正如我刚刚添加到问题部分中的那样,我的文件中有一个先前的模式,它搞砸了:
url(r'^register', 'userProfile.views.register'),
我把它改为:
url(r'^register+/?$', 'userProfile.views.register'),
现在一切正常。 /捂脸