Вызов любой из функций ugettext(), ugettext_lazy(), ugettext_noop(), ungettext()
и ungettext_lazy()
из django.utils.translation
вызовет предупреждение об устаревании RemovedInDjango40Warning
.
python -Wall manage.py runserver
/Users/stormh/torchbox/wagtail/wagtail/admin/edit_handlers.py:762: RemovedInDjango40Warning: django.utils.translation.ugettext_lazy() is deprecated in favor of django.utils.translation.gettext_lazy().
'heading': ugettext_lazy('Scheduled publishing'),
ugettext
функции устарели в Django 3.0
Причина отказа в том, что это устаревшие псевдонимы для своих соответствующих gettext
аналогов. Когда-то они использовались для совместимости Unicode с Python 2.7 согласно этому билету.
Мы должны заменить все ссылки на функции ugettext
их эквивалентами gettext
. Это не должно иметь отрицательного влияния, потому что Wagtail больше не поддерживает Python 2.7, и это изменение будет совместимо с Django 2.2 LTS.
Теперь нужно ли нам спешить с внедрением этого изменения? Нет, не совсем. Функции ugettext
планируется удалить в Django 4.0. Который планируется выпустить в 2022 году, согласно диаграмме, взятой из https://www.djangoproject.com/download/.
Однако было бы неплохо избавиться от этих неприятных предупреждений об устаревании для этого опыта my-project-is-full-up-to-date 👌
Есть ли способ отключить это предупреждение, пока оно не будет устранено?
@danihodovic Зависит от вашего
[pytest]
filterwarnings =
ignore::django.utils.deprecation.RemovedInDjango40Warning
Спасибо @marteinn !
Завершено в # 5907, но поскольку вполне возможно, что новые вхождения могут проникнуть внутрь в результате слияния существующих PR, я оставлю это открытым, чтобы напомнить нам о необходимости провести еще одну проверку перед выпуском 2.9.
Перепроверил, и новых событий не закралось, так что, думаю, у нас все хорошо
Самый полезный комментарий
@danihodovic Зависит от вашего