سيؤدي استدعاء أي من وظائف 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/
ومع ذلك ، سيكون من الجيد التخلص من تحذيرات الإهمال السيئة هذه لتجربة مشروعي بالكامل المحدثة 👌
هل هناك أي طريقة لإسكات هذا التحذير حتى يتم حله؟
danihodovic يعتمد على حالة الاستخدام الخاصة بك ، هذه هي الطريقة التي تخفيها عند تشغيل pytest.
[pytest]
filterwarnings =
ignore::django.utils.deprecation.RemovedInDjango40Warning
شكرا لك @ مارتين !
اكتمل في # 5907 ، ولكن نظرًا لأنه من المحتمل تمامًا أن تتسلل الأحداث الجديدة نتيجة لدمج العلاقات العامة الحالية ، سأترك هذا مفتوحًا لتذكيرنا بالقيام بمسح آخر قبل الإصدار 2.9.
أعيد التحقق ، ولم تتسلل أي أحداث جديدة ، لذلك أعتقد أننا جميعًا بخير 👍
التعليق الأكثر فائدة
danihodovic يعتمد على حالة الاستخدام الخاصة بك ، هذه هي الطريقة التي تخفيها عند تشغيل pytest.