菜鸟网络工程师的成长笔记——第2天(2016.08.19)
这几天公司离职的人不少,其实说来这些同事也大都是新来这里没多长时间的,看来网络公司人才流动性还是蛮大的。当然,这种推测可能是窥一斑而知全豹,也可能是一叶障目。但无论如何,我知道我要接手离职同事的项目了。当然,我之前的项目也在继续。
6.点击详细信息的链接没有跳转,而是还在本页
问题分类:后端,django,url
解决状态:已解决
问题描述
还是昨天的意见反馈的页面,页面上会列出已有的意见条目,点击条目应该跳转到相应的意见详细页面上,但实际上总是还在原页面上。也就是说,localhost/user/opinion这个页面上点击条目后,应该转入localhost/user/opinion/5/这样的详细意见的页面上。但事实上却没有。
问题解决
问题出在django的url上面。django的url路由使用的是正则表达式,而且路由的匹配时有顺序的,如果前面的匹配了,就不会继续匹配后面的条目,当时的写法是这样的:
urlpatterns = [
...
url(r'^user/opinion/', views.user_opinion, name='opinion'),
url(r'^user/opinion/(?P<opinion_id>\d+)/$', views.user_opinion_detail, name='opinion_detail'),
]
这样,其实^user/opinion/这一条就已经匹配了localhost/user/opinion/5/这种形式的url,而且不会再往下看了。解决方法是进行更精确的匹配。加一个字符串尾的匹配。
urlpatterns = [
...
url(r'^user/opinion/$', views.user_opinion, name='opinion'),
url(r'^user/opinion/(?P<opinion_id>\d+)/$', views.user_opinion_detail, name='opinion_detail'),
]