в Django 1.11.24 (python2.7) У меня проблемы с немецким 'умлаутом'.Когда ресурс удаляется, я создаю поток действия со следующей конфигурацией:
action_settings = defaultdict(lambda: dict(actor=getattr(instance, "owner", None),
action_object=instance,
created_verb=_('created'),
deleted_verb=_('deleted'),
object_name=getattr(instance, 'name', None),
target=None,
updated_verb=_('updated'),
))
deleted_verb=_('deleted')
дает gelöscht
.Попытка открыть это действие в Django-admin заканчивается в UnicodeEncodeError
При попытке сначала закодировать строку с помощью:
del_word = unicode(_('deleted'))
Я получаю следующую трассировку стека от django
UnicodeEncodeError в / de / admin / actstream / action / 101 / change / 'ascii' кодек не может кодировать символ u '\ xf6' в позиции 9: порядковый номер не в диапазоне (128) ЗапросМетод: GET URL запроса: http://localhost:8000/de/admin/actstream/action/101/change/ Версия Django: 1.11.24 Тип исключения: UnicodeEncodeError Значение исключения: кодек 'ascii' не может кодировать символ u '\ xf6' в позиции 9: порядковый номер не находится в диапазоне (128)Расположение исключения: /Users/base/src/geonode-learing/env/geonode/lib/python2.7/site-packages/django/utils/encoding.py в force_text, строка 80 Исполняемый файл Python: / Users / base / src /geonode-learing / env / geonode / bin / python Python версия: 2.7.10 Python Path: ['/ Users / base / src / geonode-learing / geonode', '/ Users / base / src / geonode-learing / env /geonode / lib / python27.zip ',' /Users/base/src/geonode-learing/env/geonode/lib/python2.7 ',' /Пользователи / base / src / geonode-learing / env / geonode / lib / python2.7 / plat-darwin ',' /Users/base/src/geonode-learing/env/geonode/lib/python2.7/plat-mac',' /Users/base/src/geonode-learing/env/geonode/lib/python2.7/plat-mac/lib-scriptpackages ',' / Users / base / src / geonode-learing / env / geonode / lib/python2.7/lib-tk ',' /Users/base/src/geonode-learing/env/geonode/lib/python2.7/lib-old ',' / Users / base / src / geonode-learing / env/geonode/lib/python2.7/lib-dynload ',' /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7 ',' /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin ',' /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk ',' / System / Library / Frameworks / Python.framework / Versions / 2.7 / lib / python2.7 / plat-mac ',' /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages ','/Users/base/src/geonode-learing/env/geonode/lib/python2.7/site-packages ',' / Users / base / src / geonode-learing / env / geonode / src / geonode ','/ Users / base / src / geonode-learing / my_geonode', '/ Users / base / src / geonode-learing / geonode'] Время сервера: Fr, 20 сен. 2019 11:39:00 +0000 Подсказка об ошибке Unicode Строкаэто не могло быть закодировано / декодировано: n gelöscht
Я пытался закодировать значение в Unicode, как
deleted_verb=_('deleted').encode('utf-8'),
or
deleted_verb=unicode(_('deleted')),
or
try:
deleted_verb = unicode('gelöscht', "ascii")
except UnicodeError:
deleted_verb = unicode('gelöscht', "utf-8")
else:
pass
без удачи.
Какя могу правильно избавиться от ошибки Unicode?