【发布时间】:2012-01-10 04:13:57
【问题描述】:
我刚刚创建了一个 url 模式条目来将内容路由到我的注册视图,但该参数根本没有被传递,即使它清楚地在 URL 中也是如此。
我的网址格式:
url(r'^register/(?P<profile_type>\w+/?$)', 'userProfile.views.register'),
我的视图定义:
def register(request, profile_type=None):
我尝试加载的 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 的“用户”部分匹配,但没有通过。我很想得到一些帮助。
urls.py 包含其他类似的模式,并且这些模式工作正常:
url(r'^user/(?P<profile_id>\d+/?$)', 'userProfile.views.registeredUser'),
视图在正确的位置并且被正确调用但参数没有被传递。
实际上,我在文件中有一个先前的模式,如下所示:
url(r'^register', 'userProfile.views.register'),
我认为这是在第二种模式之前被调用并搞砸了......
【问题讨论】:
-
请发布您的准确网址格式。右括号在哪里?美元在哪里?如果您按照编辑屏幕上清楚显示的格式说明进行操作,“Markdown”不会删除空格 - 用反引号将代码括起来以进行内联格式,或者将行缩进四个空格以用于 sn-ps。跨度>
-
这个条目是在app的urls.py还是项目的urls.py中?
-
这个条目在项目的urls.py中。确切的 URL 模式是:
url(r'^register/(?P<profile_type>\w+/?$)', 'userProfile.views.register'),@DanielRoseman,Markdown not 删除了空格。它确实删除了模式的部分,这就是我添加空格的原因。
标签: django