Wagtail: Die Verwendung von uggettext-Funktionen ist veraltet

Erstellt am 18. Feb. 2020  ·  5Kommentare  ·  Quelle: wagtail/wagtail

Problemzusammenfassung

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.

Schritte zum Reproduzieren

  1. Starten Sie den Entwicklungsserver mit Warnungen, die für ein Bachstelzenprojekt mit installiertem Django 3.0 aktiviert sind: python -Wall manage.py runserver
  2. Beobachten Sie die Ausgabe. Es werden Dutzende von Warnungen ausgegeben, die dieser ähnlich sind:
/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'),
  • Ich habe bestätigt, dass dieses Problem wie in einem neuen Bachstelzenprojekt beschrieben reproduziert werden kann: Ja

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

Wie lösen wir das?

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 👌

Technische Details

  • Python-Version: 3.8.1
  • Django-Version: 3.0.3
  • Bachstelze Version: 2.9a0
  • Browserversion: n / a
Django i18n good first issue Bug

Hilfreichster Kommentar

@danihodovic Abhängig von Ihrem Anwendungsfall verstecken Sie sie auf diese Weise, wenn Sie pytest ausführen.

[pytest]
filterwarnings =
    ignore::django.utils.deprecation.RemovedInDjango40Warning

Alle 5 Kommentare

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 👍

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen