2014-11-13 5 views
2

django에서 format_html (..) 함수를 사용하고 있습니다. 악센트와 같은 특수 문자를 사용하면 오류가 발생합니다. format_html (..)을 특수 문자와 함께 사용하는 방법이 있습니까? django format_html이 유니 코드와 작동하지 않습니다.

내가 찾은 해결책

을하는 것입니다 :

format_html('<label>{0}</label>', smart_text(classes).encode('ascii', 'ignore')) 

그러나 그것은 단지 특수 문자를 제거합니다.

+1

, 왜 당신이 그것을 인코딩 할 * * 아스키 **? – Anzel

답변

2

올바른 해결책은 하나 장고와 같은 from __future__ import unicode_literals 일 또는 그 대신 strunicode.format를 호출한다이다.

1

내가이 르지 Szularz 그의 두번째 제안에 무슨 의미라고 생각

format_html(u'<label>{0}</label>', smart_text(classes)) 

을보십시오.

1

유니 코드 인수를 전달하는 경우 형식 문자열은 유니 코드 여야합니다. 형식 문자열이 ASCII이면 모든 인수도 ASCII 여야합니다.

파이썬의 str.format() 방법의 요구 사항이며 format_html()이 사용됩니다.

그래서 그것을 유니 코드 문자열 만들기 위해 u로 문자열을 서문 : 코드에서

u'<label>{0}</label>' 

을가 될 것이다 : 특수 문자가있는 경우

format_html(u'<label>{0}</label>', smart_text(classes)) 
관련 문제