我正在我的应用程序中映射动态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”函数,而是转到相应的功能?
答案 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')