Wagtail: L'utilisation des fonctions uggettext est déconseillée

Créé le 18 févr. 2020  ·  5Commentaires  ·  Source: wagtail/wagtail

Résumé de la question

L'appel de l'une des fonctions ugettext(), ugettext_lazy(), ugettext_noop(), ungettext() et ungettext_lazy() partir de django.utils.translation lèvera un avertissement d'obsolescence RemovedInDjango40Warning .

Étapes à suivre pour reproduire

  1. Démarrez le serveur de développement avec les avertissements activés pour un projet Wagtail avec Django 3.0 installé: python -Wall manage.py runserver
  2. Observez la sortie. Il produira des dizaines d'avertissements similaires à celui-ci:
/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'),
  • J'ai confirmé que ce problème peut être reproduit comme décrit sur un nouveau projet de bergeronnette: oui

ugettext sont obsolètes dans Django 3.0

La raison de la dépréciation est qu'il s'agit d'alias hérités pour leurs équivalents gettext . Ils étaient autrefois utilisés pour la compatibilité Unicode avec Python 2.7 selon ce ticket

Comment résoudre ce problème?

Nous devrions remplacer toutes les références aux fonctions ugettext par leurs équivalents gettext . Cela ne devrait avoir aucune influence négative car Wagtail ne supporte plus Python 2.7 et ce changement serait compatible avec Django 2.2 LTS.

Maintenant, devons-nous nous dépêcher de mettre en œuvre ce changement? Non, pas vraiment. Les fonctions ugettext doivent être supprimées dans Django 4.0. Qui devrait sortir en 2022 selon ce tableau que j'ai pris sur https://www.djangoproject.com/download/

Ce serait cependant bien de se débarrasser de ces vilains avertissements de dépréciation pour cette expérience mon-projet-est-entièrement à jour 👌

Détails techniques

  • Version Python: 3.8.1
  • Version de Django: 3.0.3
  • Version Bergeronnette: 2.9a0
  • Version du navigateur: n / a
Django i18n good first issue Bug

Commentaire le plus utile

@danihodovic Dépend de votre cas d'utilisation, c'est ainsi que vous les masquez lorsque vous exécutez pytest.

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

Tous les 5 commentaires

Existe-t-il un moyen de faire taire cet avertissement jusqu'à ce qu'il soit résolu?

@danihodovic Dépend de votre cas d'utilisation, c'est ainsi que vous les masquez lorsque vous exécutez pytest.

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

Merci @marteinn !

Terminé dans # 5907, mais comme il est tout à fait possible que de nouvelles occurrences puissent se faufiler à la suite de la fusion des PR existants, je laisserai cela ouvert pour nous rappeler de faire un autre balayage avant la version 2.9.

Revérifié, et aucune nouvelle occurrence ne s'est glissée, donc je pense que tout va bien 👍

Cette page vous a été utile?
0 / 5 - 0 notes