Django路由匹配错误:/create-room/触发'id字段需数值'异常
问题解决方法
核心问题:路由匹配顺序错误
Django的URL路由是从上到下依次匹配的,你当前的urlpatterns中,<pk>/这个通用路由放在了create-room/前面,导致访问/create-room/时,Django会把create-room当作pk参数传入room视图,而Room模型的id是数字类型,所以抛出了"Field 'id' expected a number but got 'create-room'"的错误。
修正后的baseApp/urls.py
把create-room/路由移到<pk>/前面,确保具体路由先匹配:
urlpatterns = [ path('', views.Home, name="home page"), path('create-room/',views.createRoom, name="create-room"), path('<pk>/', views.room, name="room"), ]
额外小问题修正
你的room_form.html里表单的method属性写错了,多了个等号,应该改成:
<form method="POST" action="">
这样修改后,访问172.0.0.1:8000/create-room/就能正常显示room_form.html页面了。
内容的提问来源于stack exchange,提问作者Ahmed
相关产品推荐
相关产品推荐

