2013-03-07 4 views
8

Ich habe einen vorhandenen Django 1.3 zu Django 1.5 migriert. alles scheint in Ordnung zu sein. Ich habe jedoch eine deprecation Warnung wegen localflavor wenn ich python manage.py runserverWie behebt man lokale Flavor Deprecation Warnung in Django 1.5?

lauch ... \ env \ lib \ site-packages \ django \ contrib \ loca lflavor__init__.py:2: DeprecationWarning: django.contrib. localflavor ist veraltet. Verwenden Sie stattdessen die separaten Pakete django-localflavor *.
warnings.warn ("django.contrib.localflavor ist veraltet. Verwenden Sie die separaten djan Go-localflavor- * Pakete statt.", DeprecationWarning)

ich die django 1.5 Release-Info gelesen habe, und ich verstehe dass diese App jetzt veraltet ist. Mein Problem ist, dass ich die LocalFlavor-App in meinem Projekt nicht verwende.

Ich kann mir vorstellen, dass eine andere App es irgendwie lädt (vielleicht Localeurl oder Modeltranslation?), Aber ich kann diese Warnung nicht beheben.

  • Wie kann man wissen, warum diese Warnung angezeigt wird?
  • Wie man es auf eine saubere Art und Weise repariert?
+0

Ich bin hier wegen dieser identischen Fehlermeldung gelandet, aber es war eigentlich wegen der Verwendung von localflavor, der Titel war ein bisschen irreführend, da dies bereits in der neuesten Version von Django behoben wurde war nicht das gleiche Problem ... für beide Probleme gibt es noch Antworten. – Nick

Antwort

6

Dies ist ein Fehler in django ist 1.5. Django selbst löst die Warnung aus.

Schuld daran ist django/contrib/gis/utils/layermapping.py#L19

Diese in django Master festgelegt ist (durch Entfernen von localflavor insgesamt).

können Sie die Warnung zum Schweigen bringen, indem ein ignorieren Ihre Logging Config hinzu:

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

Update:

Django hat jetzt ein einziges localflavors Paket: https://pypi.python.org/pypi/django-localflavor

hier ist die Dokumentation: http://django-localflavor.readthedocs.org/en/latest/

Ich ließ den Rest der Antwort, aber es ist jetzt veraltet.

Sie müssen ALLE lokalen Aromen herunterladen, die Sie verwenden (https://github.com/django/), für jetzt nur 3 sind auf Pypi.

Dann können Sie sie mit dem Einsatz neuer

from django_localflavor_XX import forms as XX_forms 

(xx ist Ihr Lieblings Code Land)

Sie wählten diese Libs alle beiseite zu legen, weil viele Commits (in Fremdsprachen) kam in Django und die Releases Zyklen war ein bisschen lang.

Django hatte native mexikanischen Sozialversicherungsnummer Validierung Widget!

Es ist also ein guter Schritt, aber all diese Pakete müssen so schnell wie möglich von lokalen Gemeinschaften verwaltet werden, um nutzbar zu sein.

Dies ist trigered, wenn ein Import abgeschlossen ist, möchten Sie möglicherweise eine Stack-Trace des Imports protokollieren oder schauen, ob Sie von einer Django-App abhängig ist, die es verwendet.

So öffnen Sie Ihre Django-Quellen, gehen Sie zu Ihrem contrib.localflavor __init__.py Datei. Drucken Sie einen Stacktrace, um zu wissen, wo der Importfehler liegt.

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

Hoffe, es hilft

+0

Danke. Ich werde versuchen zu finden, was es importiert. – luc

2

Nur mit dem gleichen Thema befassen. Ich installierte das neue Paket (zB für US-Paket):

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

dann habe ich aus den alten Code kommentiert und geändert in das neue Paket:

# 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 

scheint das Problem behoben zu haben . Die anderen Sprachpakete sind hier aufgelistet: https://github.com/django

+0

Sie müssen auch '' django.contrib.localflavor'' von 'INSTALLED_APPS' in Ihrem' settings.py' entfernen. – Banjer