2013-03-11 13 views
10

Ich beginne ein neues Projekt und ich benutze Django 1.5. Ich habe herausgefunden, dass das localflavor-Zeug aus Django 1.5 entfernt wurde und nun ein separates installierbares Paket ist. Also habe ich es installiert. In meiner models.py bin Import ich die US localflavors meine Zustände zu erhalten:Wie behebt man Django South in Bezug auf localflavor in Django 1.5?

from django_localflavor_us.models import USStateField 

In meinem Modell, ich habe dieses Feld:

state = USStateField(default='VA') 

Wenn ich eine Migration mit Süden zu laufen versuchen, Ich bekomme jetzt folgende Nachricht:

! Feld kann nicht eingefroren werden 'playerstats.location.state' ! (Dieses Feld hat die Klasse django_localflavor_us.models.USStateField)

! Der Süden kann einige Felder nicht inspizieren; Dies ist wahrscheinlich, weil sie benutzerdefinierte sind! Felder. Wenn sie in 0.6 oder niedriger gearbeitet haben, liegt das daran, dass wir die entfernt haben! Modelle Parser (es hat oft Dinge gebrochen). ! Um das zu beheben, lesen Sie http://south.aeracode.org/wiki/MyFieldsDontWork

Ich lese durch den Wiki-Artikel, aber ich finde es sehr ausführlich und komplex. Mein USStateField wird jetzt in 1.5 nicht als benutzerdefiniertes Feld betrachtet. Hat jemand anderes in 1.5 auf dieses Problem gestoßen? Und wie hast du es gelöst?

Antwort

8

Haben Sie versucht, die Introspektionsregel hinzuzufügen?

add_introspection_rules([], ["^django_localflavor_us\.models\.USStateField"]) 
+0

Das hat funktioniert! Jetzt habe ich es verstanden. – user338413

2

Ich musste die Lösung von Hedde van der Heide optimieren, um meins zur Arbeit zu bringen. Es sieht wie folgt aus:

add_introspection_rules([], ["^localflavor\.us\.models\.USStateField"])