django url中有两个或两个以上的可选参数

时间:2015-12-10 11:42:39

标签: python django django-views django-urls

在我的一个视图中,我需要在django中url中的两个可选参数。为此我正在做的就像

url(r'^some/?(?P<arg1>.*)?/?(?P<arg2>[0-9]+)?/$','my_view'),

这里,当我尝试它而不在url中传递任何参数时,它工作正常。如果我试图只传递一个optinal参数,那么这个模式也可以。 但是当我传递url中两个参数的值时,它将arg1和arg1的值组合在arg2中,如

/some/abcd/12/    

并显示它像

 `{'arg1':'abcd/12', 'arg2':None}`   

然而根据我的要求它应该显示它

`{'arg1':'abcd', 'agr2':12}`.

帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

使用^some/?(?P<arg1>[\w]+)?/?(?P<arg2>[0-9]+)?/$对我有用。在第一组中,您只想匹配字母(不是斜杠/)而不是任何字符,它至少应该有一个字符存在。四处玩here