为什么&#39; ^(?[0-P <id> 9] +)/ $&#39;在django中不是有效的正则表达式?

时间:2017-08-20 09:47:07

标签: django python-2.7

我刚刚创建了一个新的不同url和view.after后显示此错误.. 新创建的URL和视图如下

url(r'^$', views.DeleteContent, name="delete"),

查看:

def DeleteContent(request, id):
    if not request.user.is_authenticated():
        return redirect('accounts:login')

    todo = get_object_or_404(ToDo, id=id)
    todo.delete()

    return render(request,"index.html")

2 个答案:

答案 0 :(得分:0)

您的正则表达式在Django中无效,在任何地方都无效。我想你错了。

正则表达式^(?[0-P<id>9]+)/$完全无效,请将其放在regex101.com中,如@jonrsharpe所述,并查看其内容:

  • (?不完整的群组结构
  • )不完整的群组结构

您只需查看the docs

即可
url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive)

这是一年的示例网址正则表达式。看看它是如何格式化的。

你应该写你的正则表达式,以使其有效:

^(?P<id>[0-9]+)/$

这意味着id参数,它是数字([0-9]+

编辑:或者您可以使用\d+代替[0-9]+,因为它更直接,并说id是{{1} }}“即可。

答案 1 :(得分:-1)

url(r'^(?P<id>\d+)/$', DeleteContent, name='delete')