Django. Регулярное выражение возвращает не корректный вид запроса

Изучаю Django по книге Эрика Мэтиза "Изучаем Python" При указании URLs используется регулярное выражение

path('^topics/(?P<topic_id>\d+)/$', views.topic, name='topic'),

И в строке браузера должно отражаться

http://localhost:8000/topics/1

А имеем по факту

http://localhost:8000/%5Etopics/(%3FP1%5Cd+)

В чем проблема? Сам код работает нормально,страницы и данные отражаются правильно.


Ответы (1 шт):

Автор решения: Alpensin

path не для регулярных выражений. Попробуй заменить на

path('topics/<int:topic_id>/', views.topic, name='topic'),

А для регулярок re_path(r'^topics/(?P<topic_id>\d+)/$', views.topic, name='topic'),

Видимо разные версии с автором используете. Раньше (до 2.0) пути прописывались только через регулярные выражения. Хотя там была функция url, а не path.

→ Ссылка