Не удается заставить параметр url работать в Django
Я пытаюсь передать параметр через url в Django, но, похоже, ничего не получается.
Это мой views.py:
from django.shortcuts import render
def show_user_profile(request, user_id):
assert isinstance(request, HttpRequest)
return render(request, "app/show_user_profile.html", {'user_id': user_id})
В настоящее время это мой urls.py:
urlpatterns = [
path('', views.home, name='home'),
path('profile/', views.profile, name='profile'),
path(r'^show_user_profile/(?P<user_id>\w+)/$', views.show_user_profile, name="show_user_profile"),
path('admin/', admin.site.urls),
]
Я пробовал http://localhost:50572/show_user_profile/aaa, я пробовал http://localhost:50572/show_user_profile/aaa/, и http://localhost:50572/show_user_profile/aaa//, даже http://localhost:50572/show_user_profile/?user_id=aaa, но я всегда получаю тот же экран, говорящий, что он не может найти шаблон url.
введите описание изображения здесь
Но я пробовал, все безуспешно.
Также как и это:
path('show_user_profile/<int:user_id>/$', views.show_user_profile, name='show_user_profile')
Кстати, это тоже не работает.
path(r'^show_user_profile/$', views.show_user_profile, name="show_user_profile"),
Я просмотрел ответы здесь и здесь, и кажется, что я все делаю правильно. Чего мне не хватает?
Вместо этого:
path(r'^show_user_profile/(?P<user_id>\w+)/$', views.show_user_profile, name="show_user_profile"),
Попробуйте это:
re_path(r'^show_user_profile/(?P<user_id>\w+)/$', views.show_user_profile, name="show_user_profile"),
Попробуйте перейти в браузер
Примечание: я использовал re_path вместо path. вы можете проверить здесь