Django 2.0 中的正则表达式 re_path
regex in django 2.0 re_path
我对 python 和 Django 还很陌生,如果这个问题看起来太简单了,请原谅。
我一直在尝试在 CreateView 中使用它,但它不起作用:
re_path(r'^<str:pk>/$', indexView.as_view(), name='index'),
谁能告诉我为什么,以及如何解决这个问题?
你做错了,你使用的是需要正则表达式的 re_path
,在这种情况下你应该在这里使用 path
。而且你应该使用 slug
类型而不是 str
.
path('<slug:pk>/', indexView.as_view() ,name = 'index'),
但是如果你仍然想使用,re_path
你必须使用正则表达式。
re_path(r'^(?P<slug>\w+)/$', indexView.as_view() ,name = 'index'),
您可以关注django docs here.
您混淆了正则表达式 (re_path()
) 和转换器 (path()
) 语法。假设你的 pk 是一个整数,你应该使用:
path('<int:pk>/', indexView.as_view(), name='index'),
或
re_path(r'^(?P<pk>[0-9]+)/$', indexView.as_view(), name='index'),
我对 python 和 Django 还很陌生,如果这个问题看起来太简单了,请原谅。
我一直在尝试在 CreateView 中使用它,但它不起作用:
re_path(r'^<str:pk>/$', indexView.as_view(), name='index'),
谁能告诉我为什么,以及如何解决这个问题?
你做错了,你使用的是需要正则表达式的 re_path
,在这种情况下你应该在这里使用 path
。而且你应该使用 slug
类型而不是 str
.
path('<slug:pk>/', indexView.as_view() ,name = 'index'),
但是如果你仍然想使用,re_path
你必须使用正则表达式。
re_path(r'^(?P<slug>\w+)/$', indexView.as_view() ,name = 'index'),
您可以关注django docs here.
您混淆了正则表达式 (re_path()
) 和转换器 (path()
) 语法。假设你的 pk 是一个整数,你应该使用:
path('<int:pk>/', indexView.as_view(), name='index'),
或
re_path(r'^(?P<pk>[0-9]+)/$', indexView.as_view(), name='index'),