如何在动态网址中排除某些参数?

时间:2014-11-27 10:54:23

标签: python django django-urls

我正在我的应用程序中映射动态url参数,例如pagename,如myapp.com/ [pagenamehere] 我的urls.py看起来像:

url(r'^(?P<pagename>[a-zA-Z0-9_.-]*)/$', 
    views.all_pagenames, 
    name='all_pagenames')

但是,myapp.com / login,myapp.com / register,myapp.com / webout等的网址已经映射到urls.py文件中,例如:

url(r'^about/$', views.about, name='about')

如何修改页面名称的动态网址,以便从可能的网页名称参数中排除诸如“登录”关于'等的单词,并且不转发到视图中的“all_pagenames”函数,而是转到相应的功能?

1 个答案:

答案 0 :(得分:2)

Django将按照定义顺序尝试每个网址模式,因此您不必担心“排除”其他网址,您只需要确保在之前定义它们所有“pagename”网址格式:

url(r'^about/$', views.about, name='about')
url(r'^login/$', views.login, name='login')
# etc
# and last:
url(r'^(?P<pagename>[a-zA-Z0-9_.-]*)/$', 
     views.all_pagenames, name='all_pagenames')