Глагол удаления потока активности Django дает UnicodeEncodeError - PullRequest
1 голос
/ 20 сентября 2019

в 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...