Django regex не работает при добавлении других веток в url
Я полный новичок в Django, и я столкнулся с проблемой при попытке установить url для каждой "комнаты". Вот код:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^home/$', views.home, name='home'),
url(r'^room/<str:pk>/$', views.room, name='room'),
]
Все работало отлично, пока я не добавил /<str:pk>/$. Я также добавил этот код в раздел views.py:
def room(request,pk):
return render(request, 'base/room.html')
Однако я все еще получаю ошибку при загрузке веб-сайта. Изображение сообщения об ошибке
Кто-то знает, как заставить его работать?
Во-первых, как сказано в комментариях, вы должны поставить
pkв url и следовать этому:http://127.0.0.1:8000/room/1/Затем, убедитесь, что у вас есть хотя бы один объект
Roomв базе данных, иначе url не будет активным.И последнее, это должно быть скорее
<int:pk>чемstr, потому что я считаю, что вашpkэто классическийidкак число. Итак, урлы:urlpatterns = [ ... url(r'^room/<int:pk>/$', views.room, name='room'), ]
Просто заменил /<str:pk>/$ на /(?P<pk>\d+)/$', views.room, name='room'), и все получилось отлично !