Как исправить предупреждение об устаревании localflavor в django 1.5?

Я перенес существующий django 1.3 на django 1.5. все кажется в порядке. Однако у меня есть предупреждение об устаревании из-за localflavor, когда я запускаю python manage.py runserver

...\env\lib\site-packages\django\contrib\loca lflavor__init__.py:2: DeprecationWarning: django.contrib.localflavor устарел. Вместо этого используйте отдельные пакеты django-localflavor-*.
warnings.warn("django.contrib.localflavor устарел. Вместо этого используйте отдельные пакеты djan go-localflavor-*.", DeprecationWarning)

Я прочитал примечание к выпуску django 1.5 и понимаю, что это приложение устарело. Моя проблема в том, что я не использую приложение localflavor в своем проекте.

Я предполагаю, что его каким-то образом загружает другое приложение (может быть, localeurl или modeltranslation?), но я не знаю, как исправить это предупреждение.

  • Как узнать, почему отображается это предупреждение?
  • Как починить по-чистому?

person luc    schedule 07.03.2013    source источник
comment
Я оказался здесь из-за этого идентичного сообщения об ошибке, но на самом деле это было связано с использованием localflavor, название немного вводило в заблуждение, поскольку это уже было исправлено в последней версии Django, но это не та же проблема ... ответы все еще предусмотрены обе проблемы.   -  person Nick    schedule 11.03.2013


Ответы (3)


Это ошибка в django 1.5. Сам Django вызывает предупреждение.

Виновником является django/contrib/gis/utils. /layermapping.py#L19

Это исправлено в мастере django (путем полного удаления localflavor).

Вы можете отключить предупреждение, добавив игнорирование в конфигурацию ведения журнала:

import warnings
warnings.filterwarnings('ignore', r"django.contrib.localflavor is deprecated")
person craigds    schedule 08.03.2013

Обновлять:

Теперь у Django есть один пакет localflavors: https://pypi.python.org/pypi/django-localflavor

вот документация: http://django-localflavor.readthedocs.org/en/latest/< /а>

Я оставил остальную часть ответа, но теперь он устарел.

Вы должны загрузить ВСЕ местные варианты, которые вы используете ( https://github.com/django/ ), пока только 3 на pypi.

Затем вы можете использовать их с новым

from django_localflavor_XX import forms as XX_forms

(где xx — ваш любимый код страны)

Они решили отложить все эти библиотеки, потому что в django было много коммитов (на иностранных языках), а циклы релизов были немного длинными.

У Django был родной мексиканский виджет проверки номера социального страхования!

Так что это хороший ход, но все эти пакеты должны управляться местными сообществами как можно скорее, чтобы их можно было использовать.

это срабатывает, когда импорт выполняется, вы можете захотеть зарегистрировать трассировку стека импорта или посмотреть, зависите ли вы от приложения django, которое его использует.

Итак, откройте исходники django, перейдите в файл contrib.localflavor __init__.py. распечатайте трассировку стека, чтобы узнать, где плохой импорт.

http://docs.python.org/2/library/traceback.html

Надеюсь, поможет

person christophe31    schedule 07.03.2013
comment
Спасибо. Я постараюсь найти, что импортирует его. - person luc; 07.03.2013

Только что занимался такой же проблемой. Я установил новый пакет (пример для пакета США):

установка pip https://github.com/django/django-localflavor-us/zipball/master

затем я закомментировал старый код и перешел на новый пакет:

# from django.contrib.localflavor.us.us_states import STATE_CHOICES  <= old
from django_localflavor_us.us_states import STATE_CHOICES
# from django.contrib.localflavor.us.models import USStateField  <= old
from django_localflavor_us.models import USStateField

Кажется, проблема исправлена. Другие языковые пакеты перечислены здесь: https://github.com/django.

person eezis    schedule 10.03.2013
comment
Вам также может понадобиться удалить 'django.contrib.localflavor' из INSTALLED_APPS в вашем settings.py. - person Banjer; 02.08.2013