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

为什么'^(?[0-P<;id>;9]+;)/$';在django中不是有效的正则表达式?,django,python-2.7,Django,Python 2.7,我刚刚创建了一个新的不同的url和视图。在此之后,将显示此错误。。 新创建的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(

我刚刚创建了一个新的不同的url和视图。在此之后,将显示此错误。。 新创建的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")
url(r'^(?P\d+/$),DeleteContent,name='delete')

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

regex
^(?[0-P9]+)/$
完全无效,请按所述将其放入,然后查看它的说明:

  • (?
    不完整的组结构
  • 组结构不完整
您只需看看:

url(r'^articles/(?P[0-9]{4})/$,views.year\u存档)
这是今年的url正则表达式示例。看看它是如何格式化的

您应该像这样编写正则表达式,以使其有效:

^(?P<id>[0-9]+)/$
^(?P[0-9]+)/$
它表示一个
id
参数,该参数是数字(
[0-9]+


编辑:或者您可以使用
\d+
而不是
[0-9]+
,因为它更简单,并且说
id
是一个
数字
,因为它在任何地方都不是有效的正则表达式?尝试将其放入例如,您将看到错误的解释。您需要将此
[0-
部分移到
之后,因此它将是
^(?P[0-9]+)/$
,这意味着
id
参数是一个数字。但如果这是您的意思,
\d
[0-9]
更惯用。
url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive)
^(?P<id>[0-9]+)/$