0

我正在尝试匹配 url 中的两个字符串,但由于我对正则表达式的了解不足,它可能无法正常工作。我想要如下网址:

  • 测试服务器/用户名/
  • 测试服务器/用户名/1234/
  • 测试服务器/用户名/奖励/

用户名将作为 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,这显然会导致失败。我该如何解决这个问题?

4

1 回答 1

0

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

因此,如果您颠倒 url 的顺序,它应该会更好。

于 2014-08-23T17:25:15.807 回答