Использование Джанго 1.7 и Python 2.7, в взглядов у меня есть:Как передать нелатинскую строку в параметр url в django?
page = 0
sex = [u'\u0632\u0646'] #sex = زن
url = "/result/%s/%d" % (sex, page)
return HttpResponseRedirect(url)
Что нужно вернуть:
/result/زن/0
Однако полученный URL оказывается:
/result/[u'\u0632\u0646']/0
Это не то, что предусмотрено в схеме:
`url(r'^result/(?P<sex>\w+)/(?P<page>\d+)','userprofile.views.profile_search_result')`,
Я также попытался
return HttpResponseRedirect(iri_to_uri(url))
, но не решает проблему.
Я действительно смутился и ценю вашу помощь, чтобы исправить это.
Но кажется, что 'sex' является второй частью вашего шаблона' r '^ result/(? P \ w +)/(? P \ d +)' '? И о вашем 'url' вам нужно указать для python, что формат является unicode, вам нужно добавить' u' в начало вашего url 'url = u '/ result /% s /% d"% (sex, страница) ' –
Kasramvd
или в обратной последовательности использовать функцию' unicode' return HttpResponseRedirect (unicode (url, 'escape-unicode')) ' – Kasramvd
@Kasra, предполагаемый первый параметр после'/result' является 'زن', что очевидно в URL-адресе шаблон. Однако браузер (и текстовый редактор здесь) перемещает '0' слева от' زن' (не уверен, почему). – supermario