与views.py相关的urls.py中的Django 2.0错误

时间:2017-12-22 18:16:49

标签: django url views

编辑:这不是前一个问题的完全重复。我刚刚解决了这个问题而没有按照所谓的重复答案的建议使用 - 所以建议的是错误的/不必要的。实际上问题出现了,因为我试图在不需要时使用它。

我有以下代码,试图加载页面localhost / music / 1 ...我一直在关注使用Django 1.9的教程。

抛出错误的代码是:

音乐/ urls.py

# this is matching /music/1 where 1 is the album id
path('(?P<album_id>)[0-9]+)/', views.detail, name='detail'), #note album_id is the variable being stored which can be passed

音乐/ views.py

def detail(request,album_id):
    return HttpResponse("<h2>Details for Album id:" + str(album_id) + "</h2>")

错误消息:

Page not found (404)
Request Method: GET
Request URL:    http://127.0.0.1:8000/music/2
Using the URLconf defined in website.urls, Django tried these URL patterns, in this order:

admin/
music/ [name='index']
music/ (?P<album_id>)[0-9]+)/ [name='detail']
videos/
The current path, music/2, didn't match any of these.

任何人都可以发布解决问题的修复/答案。

由于

1 个答案:

答案 0 :(得分:-1)

你有一个额外的括号“)”

path('(?P<album_id>)[0-9]+)/'
                   ^ 

应该是

path('(?P<album_id>[0-9]+)/'

但无论如何,如果您使用django 2.0,check how to use path,它就不再使用这些正则表达式代码了。

修改

根据@Daniel Roseman的回答,path不应该与正则表达式一起使用,尽管括号错字。