Wenn Sie eine der Funktionen ugettext(), ugettext_lazy(), ugettext_noop(), ungettext()
und ungettext_lazy()
von django.utils.translation
aufrufen, wird eine Abwertungswarnung von RemovedInDjango40Warning
ausgelöst.
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
-Funktionen sind in Django 3.0 veraltet
Der Grund für die Abwertung ist, dass dies Legacy-Aliase für die entsprechenden gettext
Gegenstücke sind. Sie wurden einmal für die Unicode-Kompatibilität mit Python 2.7 gemäß diesem Ticket verwendet
Wir sollten alle Verweise auf ugettext
Funktionen durch ihre gettext
Gegenstücke ersetzen. Dies sollte keinen negativen Einfluss haben, da Wagtail Python 2.7 nicht mehr unterstützt und diese Änderung mit Django 2.2 LTS kompatibel wäre.
Müssen wir uns jetzt beeilen, diese Änderung umzusetzen? Nein nicht wirklich. Die ugettext
-Funktionen sollen in Django 4.0 entfernt werden. Was laut dieser Tabelle, die ich von https://www.djangoproject.com/download/ genommen habe, voraussichtlich 2022 veröffentlicht wird.
Es wäre jedoch schön, diese fiesen Abwertungswarnungen für diese Erfahrung meines Projekts, die vollständig auf dem neuesten Stand ist, loszuwerden 👌
Gibt es eine Möglichkeit, diese Warnung zum Schweigen zu bringen, bis sie behoben ist?
@danihodovic Abhängig von Ihrem Anwendungsfall verstecken Sie sie auf diese Weise, wenn Sie pytest ausführen.
[pytest]
filterwarnings =
ignore::django.utils.deprecation.RemovedInDjango40Warning
Danke @marteinn !
Abgeschlossen in # 5907, aber da es durchaus möglich ist, dass sich durch das Zusammenführen vorhandener PRs neue Ereignisse einschleichen, lasse ich dies offen, um uns daran zu erinnern, vor der Veröffentlichung von Version 2.9 einen weiteren Sweep durchzuführen.
Erneut überprüft, und es haben sich keine neuen Ereignisse eingeschlichen, also denke ich, dass wir alle gut sind 👍
Hilfreichster Kommentar
@danihodovic Abhängig von Ihrem Anwendungsfall verstecken Sie sie auf diese Weise, wenn Sie pytest ausführen.