我有一个网址
http://127.0.0.1:8000/users/profiles/?profile=17320
我在urls.py文件中定义了这一行。
url(r'^profiles/(?P<profile>\d+)/$', views.display_profile),
并且在运行时,点击上面的网址,它没有打开页面,实际显示所有可用的网址列表。还有Page not found (404)
答案 0 :(得分:3)
你的正则表达式匹配
http://127.0.0.1:8000/profiles/17320
不
http://127.0.0.1:8000/users/profiles/?profile=17320
所以应该修复。在django网址中也没有捕获params(比如?profile = ..)。
答案 1 :(得分:2)
您的网址与此类似
127.0.0.1:8000/profiles/542/
如果您想将个人资料ID用作GET参数,请更改您的网址以匹配
url(r'^profiles/$', views.display_profile),
在视图函数内部或get(self, request, *args, **kwargs)
方法内的基于类的视图内部使用
profile_id = request.GET.get('profile', None) # where None is the value to use
# if profile does not exist
我希望这会有所帮助
我在回答您完全相同的问题之前写了另一个答案
答案 2 :(得分:1)
作为参数,查询字符串和url部分存在差异
你正在做的是查询字符串,你已经为url的一部分设置了url模式作为param
所以你的网址应该是http://127.0.0.1:8000/users/profiles/17320/