Tôi biết có tiêu đề hiện tại về điều này, nhưng có câu hỏi khác với tôi. Đây là vấn đề của tôi. Tôi sử dụng bộ xử lý ngữ cảnh để hiển thị tên người dùng. Nó hoạt động nhưng sentry của tôi phát hiện một lỗi ngày hôm qua.UnicodeEncodeError: 'ascii' codec không thể mã hóa ký tự u ' xe9' ở vị trí 1: thứ tự không nằm trong phạm vi (128)
UnicodeEncodeError: 'ascii' codec không thể mã hóa kí tự u '\ xe9' ở vị trí 1: thứ tự không trong phạm vi (128)
Đây là mã của tôi:
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,}
nguyên nhân là gì điều này? Hoặc ký tự nhập của người dùng cho tên của họ?
trước khi tôi đánh dấu câu trả lời của bạn. Sử dụng {{user.get_full_name}} trong mẫu có ổn không và nó sẽ không phát hiện lỗi ascii? – catherine
Vâng, được rồi. Công cụ tích hợp của Django luôn luôn (thường) trả về các chuỗi unicode. –
Ok cảm ơn thông tin – catherine