我不确定它是否非常具体,但我认为我要问的是在不同背景下的不同地方使用。我的问题主要与我为Django应用程序创建的URL模式有关。我需要一个适用于所有应用程序用户的配置文件URL,因此我创建了一个URL模式,如下所示。
urlpatterns = patterns('apps.user_profile.views',
url(r"^(?P<username>\w+)/$", 'user_profile', name="user_profile_page"),
url(r"^app/$", 'app', name="app_page"),
)
非常清楚,我正在路径中使用用户名映射URL以动态获取用户数据。这工作正常,但问题出现在系统收到app
页面的请求时。在这种情况下,请求会转到用户个人资料,因为它接受所有类型的字词,并在app
urls.py
user_profile
视图之前进行排序。
问题:
有没有办法指定在urls.py
视图中未解决请求的情况下继续查看应用的{{1}}中的其他网址?
答案 0 :(得分:0)
模式按照它们的编写顺序进行匹配,因此只需在用户名模式之前移动app
模式即可解决问题:
urlpatterns = patterns('apps.user_profile.views',
url(r"^app/$", 'app', name="app_page"),
url(r"^(?P<username>\w+)/$", 'user_profile', name="user_profile_page"),
)
现在,只有当网址 不匹配app/
时,它才会被发送到您的用户个人资料视图。
当然,如果用户使用app
用户名注册,您就会遇到问题。