Django Urlconf命名组字符串匹配

时间:2014-08-23 14:20:55

标签: python regex django urlconf

我试图在网址中匹配两个字符串,但由于我对正则表达式的了解不足而无法解决问题。我想要以下网址:

  • testserver / username /
  • TESTSERVER /用户名/ 1234 /
  • TESTSERVER /用户名/奖励/

用户名将作为kwarg传递到url。这就是我所拥有的:

url(r'^(?P<username>[-\w]+)/$', Posts_Index, name="userposts"),
url(r'^(?P<username>[-\w]+)/photos/$', Photo_Index, name="userphotos"),
url(r'^(?P<username>[-\w]+)/rewards/$', Rewards_Index, name="userrewards"),
url(r'^(?P<username>[-\w]+)/following/$', Follower_Index, name="userfollowers"),
url(r'^(?P<username>[-\w]+)/followers/$', Following_Index, name="userfollowing"),
url(r'^(?P<username>[-\w]+)/(?P<pk>\d+)/$', SinglePost_Index, name="singlepost"),

但是,只会找到用户信息。如果我尝试查询userphotos或userposts以下的任何内容,则只会检查userposts url,这显然会导致失败。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

来自django docsDjango runs through each URL pattern, in order, and stops at the first one that matches the requested URL.

因此,如果你颠倒网址的顺序,它应该更好。