/ / Unicode v Django Messages Framework - django, unicode

Unicode v Django Messages Framework - django, unicode

V Django mám flash správu, ktorá je vytvorená pomocou štandardného poľa char z modelu členstva.

messages.add_message(request,
messages.INFO,
"{0} membership created".format(membership.name))

Funguje to dobre, iba ak memberships.name obsahuje znaky unicode, v takom prípade dostanem a UnicodeEncodeError, Môžem to napraviť tým, že napíšem reťazec u vytvoriť reťazec unicode, ale nechápem, prečo je to potrebné ako docs že Django predpokladá, že všetky bytestrings sú v utf-8. Mám prechádzať svojou aplikáciou a meniť všetky reťazce na reťazce unicode?

odpovede:

1 pre odpoveď č. 1

Toto nie je „skutočný problém s Djangom. Vyzerá to, že ste v chybe v ceste str.format spracováva argumenty unicode, Python vydanie 7300

Jedným riešením je použitie reťazca unicode, ďalšie je použitie % formátovanie.

"%s membership created" % membership.name
u"{0} membership created".format(membership.name))

0 pre odpoveď č. 2

Áno. Okrem tých, ktoré sú vlastne reťazcami bajtov, pretože boli prečítané zo súboru alebo podobne.