这是我的代码
from django.urls import path
urlpatterns = [
# /audios/
path('', views.audio ),
# /audios/4344/
path('(<record_id>[0-9]+)/', views.record_detail),
]
请有人帮帮忙
答案 0 :(得分:1)
Django 2.0带来了通过路径为网址模式定义新方式的新更新。在新的网址格式中,您无需在正则表达式中定义网址(请参阅第3个网址格式)。 Refer
但你也可以像我们在django&lt;中定义的那样编写url模式。 2. 0 re_path ,可在 django.urls refer
中找到或者您可以使用旧的django样式来定义在 django.conf.urls 中定义的url模式,它可以帮助您为网址定义重新模式。
from django.urls import re_path, path
from djnago.conf.urls import url,include
urlpatterns += [
url('(<record_id>[0-9]+)/',views.record_detail),
#or
re_path('(<record_id>[0-9]+)/', views.record_detail),
#or
path('<int:record_id>/', views.record_detail)
]
答案 1 :(得分:0)
试试这个:
path(r'^record/(?P<record_id>[0-9]+)/$', views.record_detail)
答案 2 :(得分:0)
就像@Exprator写的那样,路径应该是:
path('<int:record_id>/', views.record_detail, name='record_detail'),
但是,我认为在视图中可能存在问题&#34; record_detail&#34;,视图应该声明如下:
def record_detail(request, record_id):
然后,您可以在视图正文中引用您的record_id。 这是我的代码:
urlpatterns = [
path('', views.index, name='index'),
path('<int:record_id>/', views.record_detail, name='record_detail'),
]
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world.")
def record_detail(request, record_id):
return HttpResponse("Hello, world. You're record is: "+str(record_id))