从django.utils.translation
调用ugettext(), ugettext_lazy(), ugettext_noop(), ungettext()
和ungettext_lazy()
函数中的任何一个都会引发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'),
弃用的原因是这些是它们对应的gettext
对应物的旧别名。 根据此票证,它们曾经用于与python 2.7的unicode兼容性
我们应该将所有对ugettext
函数的引用替换为其对应的gettext
。 这应该没有负面影响,因为Wagtail不再支持Python 2.7,并且此更改将与Django 2.2 LTS兼容。
现在,我们是否必须急于执行此更改? 不,不是。 ugettext
函数计划在Django 4.0中删除。 根据我从https://www.djangoproject.com/download/上获得的这张图表,该文件计划于2022年发布。
但是,最好消除那些讨厌的过时警告,因为我的项目是最新的体验👌
在解决此警告之前,是否有任何方法可以使其静音?
@danihodovic取决于您的用例,这是在运行pytest时如何隐藏它们的方式。
[pytest]
filterwarnings =
ignore::django.utils.deprecation.RemovedInDjango40Warning
谢谢@marteinn !
已在#5907中完成,但是由于合并现有PR很有可能会出现新情况,因此我将对此保持开放状态,以提醒我们在2.9版本之前进行另一次扫描。
经过重新检查,没有新的事件发生,所以我认为我们都很好👍
最有用的评论
@danihodovic取决于您的用例,这是在运行pytest时如何隐藏它们的方式。