我刚刚创建了一个URL模式条目,用于将内容路由到我的注册视图,但是该参数根本没有被传递,尽管它显然在url中。
我的URL模式:
url(r'^register/(?P<profile_type>\w+/?$)', 'userProfile.views.register'),我的视图定义:
def register(request, profile_type=None):我尝试加载的URL (不是真正的URL,而是一个示例):
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'}显然,正则表达式匹配URL的“user”部分,但它没有被传递。我希望在这方面能得到一些帮助。
urls.py包含其他类似的模式,并且这些模式工作正常:
url(r'^user/(?P<profile_id>\d+/?$)', 'userProfile.views.registeredUser'),视图位于正确的位置,并且正在正确调用,但未传递参数。
实际上,我在文件中有一个以前的模式,看起来像这样:
url(r'^register', 'userProfile.views.register'),我认为这是在第二个模式之前被调用,把事情搞砸了……
发布于 2012-01-11 12:02:25
正如我刚刚添加到问题部分一样,我的文件中有一个以前的模式,它把事情搞得一团糟:
url(r'^register', 'userProfile.views.register'),
我将其更改为:
url(r'^register+/?$', 'userProfile.views.register'),
现在一切都正常了。/facepalm
发布于 2012-01-10 13:04:41
尝试在设置中将APPEND_SLASH设置为False。有关详细信息,请参阅that
https://stackoverflow.com/questions/8798484
复制相似问题