Как я могу использовать .format () с URL в Django? - PullRequest
0 голосов
/ 17 января 2020

Я пишу приложение на Django, и я хотел бы отформатировать свой URL следующим образом:

return HttpResponseRedirect("timetable/{0}/{1}/".format(my_grade, my_letter))

Но это дает мне ошибку 404, потому что путь не совпадает. Это URL, на который я перенаправлен:

http://127.0.0.1:8000/timetable/8/%D0%97/

Как исправить кодировку?

Ответы [ 2 ]

1 голос
/ 17 января 2020

С urlparse

from urllib.parse import urlparse

parsed = urlparse("timetable/{0}/{1}/".format(my_grade, my_letter))
url = parsed.path

return HttpRedirect(url)
0 голосов
/ 18 января 2020

Наконец-то я дошел до ответа. Правильный путь - использовать функцию urllib.parse.unquote (), которая заменяет экранирование% xx их односимвольным эквивалентом.

from urllib.parse import unquote

url = str(my_grade) + '/' + my_letter
url = unquote(url)
return HttpResponseRedirect(url)
...