我在URL文件中有这个
(r'^new/(?P<object_class>\w+)/(?P<action>\w+)/(?P<object_id>\d+)/$', create_object)
对于像/new/book/edit/5
这样的网址,它正常工作
但是,如果我/new/book/create
,那么它说的也不匹配URL。
是否有可能第三个argumrent是可选的,以便我可以对上述情况使用一个URL规则
答案 0 :(得分:0)
(r'^new/(?P<object_class>\w+)/(?P<action>\w+)/((?P<object_id>\d+)/)?$', create_object)
这应该这样做。 (注意我将object_id
和/
包裹在(..)?
中以使其可选)
现在object_id
在视图中应为。
答案 1 :(得分:0)
你可以将其中一个参数标记为可选,正则表达式为0或1表示问号。使用我使用的示例:
(r'^new/(?P<object_class>\w+)/(?P<action>\w+)(/(?P<object_id>\d+))?/$', create_object)
需要注意的重要事项是尾随/应该仍然存在。