URL 主键模式无法正常工作
URL Pattern with Primary Key not working properly
需要有关 url 中正则表达式的帮助。我正在构建一个不同的应用程序,而不是上面讲座中显示的应用程序。与我的讲座案例相关,学校是客户,学生是类别。
在 urls.py 文件中,来自 url_patterns :
url(r'^(?P<pk>[-\w]+)/$', views.DetailClientList.as_view(), name='Detail_Client_List'),
这工作正常,地址为 http://127.0.0.1:8000/App1/cli1/,其中 cli1 是客户 table 主键(记录之一)。
但是当我将下面的行放在 url 模式中时(而不是上面的)
url(r'^<str:pk>/$', views.DetailClientList.as_view(), name='Detail_Client_List')
我收到以下错误(int:pk 的错误相同):
找不到页面 (404)
请求Method:GET
请求URL:http://127.0.0.1:8000/App1/cli1/
结果 URL 在上述两种情况下是相同的。那么我哪里错了。我猜它是 url 模式正则表达式的问题(尽管结果 URL 是一样的?)。
请帮忙。 TIA!
您可能误解了 url(...)
--(Doc) with path(...)
--(Doc)
所以,
from django.conf.urls import url
urlpatterns = [
url(
r'^(?P<pk>[-\w]+)/$',
views.DetailClientList.as_view(),
name='Detail_Client_List'
),
]
与以下相同,
from django.urls import path
urlpatterns = [
path(
'<str:pk>',
views.DetailClientList.as_view(),
name='Detail_Client_List'
)
]
尝试使用 re_path
而不是 'url'
from django.urls import re_path, path
1. re_path
re_path(r'^<str:pk>/$', views.DetailClientList.as_view(), name='Detail_Client_List')
2.路径
path('<str:pk>/', views.DetailClientList.as_view(), name='Detail_Client_List')
需要有关 url 中正则表达式的帮助。我正在构建一个不同的应用程序,而不是上面讲座中显示的应用程序。与我的讲座案例相关,学校是客户,学生是类别。
在 urls.py 文件中,来自 url_patterns :
url(r'^(?P<pk>[-\w]+)/$', views.DetailClientList.as_view(), name='Detail_Client_List'),
这工作正常,地址为 http://127.0.0.1:8000/App1/cli1/,其中 cli1 是客户 table 主键(记录之一)。
但是当我将下面的行放在 url 模式中时(而不是上面的)
url(r'^<str:pk>/$', views.DetailClientList.as_view(), name='Detail_Client_List')
我收到以下错误(int:pk 的错误相同):
找不到页面 (404)
请求Method:GET
请求URL:http://127.0.0.1:8000/App1/cli1/
结果 URL 在上述两种情况下是相同的。那么我哪里错了。我猜它是 url 模式正则表达式的问题(尽管结果 URL 是一样的?)。
请帮忙。 TIA!
您可能误解了 url(...)
--(Doc) with path(...)
--(Doc)
所以,
from django.conf.urls import url
urlpatterns = [
url(
r'^(?P<pk>[-\w]+)/$',
views.DetailClientList.as_view(),
name='Detail_Client_List'
),
]
与以下相同,
from django.urls import path
urlpatterns = [
path(
'<str:pk>',
views.DetailClientList.as_view(),
name='Detail_Client_List'
)
]
尝试使用 re_path
而不是 'url'
from django.urls import re_path, path
1. re_path
re_path(r'^<str:pk>/$', views.DetailClientList.as_view(), name='Detail_Client_List')
2.路径
path('<str:pk>/', views.DetailClientList.as_view(), name='Detail_Client_List')