2013-03-07 16 views
8

Przeprowadziłem migrację istniejącego django 1.3 do django 1.5. wszystko wydaje się w porządku. Mam jednak ostrzeżenie Wycofanie z powodu localflavor kiedy lauch python manage.py runserverJak naprawić ostrzeżenie o deprecacji localflavor w django 1.5?

... \ env \ lib \ site-packages \ Django \ contrib \ loca lflavor__init__.py:2: DeprecationWarning: django.contrib. localflavor jest przestarzałe. Zamiast tego użyj osobnych pakietów django-localflavor- *.
warnings.warn ("django.contrib.localflavor jest przestarzała. Użyj oddzielne Djan Go-localflavor- * pakietów w zamian." DeprecationWarning)

Czytałem Django 1.5 zwalniającą notatkę i rozumiem ta aplikacja jest teraz przestarzała. Mój problem polega na tym, że nie używam aplikacji localflavor w moim projekcie.

Wyobrażam sobie, że jakaś inna aplikacja ładuje go w jakiś sposób (może localeurl lub modeltranslacja?), Ale nie naprawię tego ostrzeżenia.

  • Jak sprawdzić, dlaczego to ostrzeżenie jest wyświetlane?
  • Jak to naprawić w czysty sposób?
+0

Skończyłem tutaj z powodu tego identycznego komunikatu o błędzie, ale było to spowodowane używaniem localflavor, tytuł był nieco mylący, ponieważ zostało to już naprawione w najnowszym wydaniu Django, ale nie był ten sam problem ... nadal udzielono odpowiedzi na oba problemy. – Nick

Odpowiedz

6

Jest to błąd w Django 1.5. Sam Django uruchamia ostrzeżenie.

Winowajca jest django/contrib/gis/utils/layermapping.py#L19

to poprawione master django (przez usunięcie localflavor łącznie).

Można wyciszyć ostrzeżenia przez dodanie zignorować do rejestrowania config:

import warnings 
warnings.filterwarnings('ignore', r"django.contrib.localflavor is deprecated") 
6

Aktualizacja:

Django mają teraz jeden pakiet localflavors: https://pypi.python.org/pypi/django-localflavor

tutaj jest dokumentacja: http://django-localflavor.readthedocs.org/en/latest/

I niech resztę odpowiedzi, ale jest przestarzały teraz.

Musisz pobrać WSZYSTKIE lokalne smaki, których używasz (https://github.com/django/), na razie tylko 3 są na pypi.

Następnie można korzystać z nich nowy

from django_localflavor_XX import forms as XX_forms 

(gdzie xx jest Twój ulubiony kod kraju)

one choosed odłożyć na bok wszystkie te bibliotekami ponieważ wiele zatwierdzeń (w językach obcych) cames w django i cykle wydań były trochę długie.

Django miał natywny meksykański widżet walidacji numeru ubezpieczenia społecznego!

Jest to dobre posunięcie, ale wszystkie te pakiety muszą być zarządzane przez lokalne społeczności tak szybko, jak to tylko możliwe, aby można je było wykorzystać.

to jest wyzwalane po zakończeniu importu, możesz chcieć zarejestrować ślad stosu importu lub sprawdzić, czy jesteś zależny od aplikacji django, która jej używa.

Otwórz więc źródła Django, przejdź do pliku contrib.localflavor __init__.py. wydrukuj stos, aby wiedzieć, gdzie jest zły import.

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

Nadzieja pomaga

+0

Dzięki. Spróbuję znaleźć to, co jest importowane. – luc

2

Wystarczy do czynienia z tym samym problemem. Po zainstalowaniu nowego pakietu (przykład dla pakietu US):

pip zainstalować https://github.com/django/django-localflavor-us/zipball/master

potem wykomentowane starego kodu i zmieniony na nowy pakiet:

# 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 

zdaje się mają stałe problem . Inne pakiety językowe są wymienione tutaj: https://github.com/django

+0

Być może będziesz musiał usunąć '' django.contrib.localflavor'' z 'INSTALLED_APPS' w swoim' settings.py'. – Banjer

Powiązane problemy