Wiem, że istnieje w tej sprawie tytuł, ale pytanie różni się od mojego. Oto mój problem. Używam procesora kontekstowego do wyświetlania nazwy użytkownika. Działa, ale mój wartownik wczoraj wykrył błąd.UnicodeEncodeError: Kodek 'ascii' nie może kodować znaków u ' xe9' w pozycji 1: porządek nie jest w zakresie (128)
UnicodeEncodeError: 'ascii' codec nie może kodować charakter u '\ xe9' w pozycji 1: nie porządkowej w zakresie (128)
Oto mój kod:
def display_name(request):
try:
name = "{0} {1}".format(request.user.first_name, request.user.last_name)
name = name.strip()
if not name:
name = request.user.username
except AttributeError:
name = None
return {'display_name': name,}
Jaka jest przyczyna tego? Lub wprowadzony przez użytkownika znak dla ich nazwy?
zanim zaznaczę twoją odpowiedź. Czy można użyć {{user.get_full_name}} w szablonie i nie wykryje on błędu ASCII? – catherine
Tak, w porządku. Wbudowane pliki Django zawsze (zwykle) zwracają ciągi znaków Unicode. –
Ok dzięki za informacje – catherine