我正在开始一个新项目,我正在使用Django 1.5。我发现localflavor的东西已经从Django 1.5中删除了,现在是一个单独的可安装包。所以我安装了它。在我的models.py中,我正在导入美国本地风格来获取我的状态:
from django_localflavor_us.models import USStateField
在我的模型中,我有这个领域:
state = USStateField(default='VA')
当我尝试使用South运行迁移时,我现在收到以下消息:
!无法冻结字段'playerstats.location.state' ! (此字段具有类django_localflavor_us.models.USStateField)
!南方不能反省某些领域;这可能是因为它们是定制的 !领域。如果他们在0.6或以下工作,这是因为我们删除了 !模型解析器(它经常破坏东西)。 !要解决此问题,请阅读http://south.aeracode.org/wiki/MyFieldsDontWork
我阅读了维基文章,但我发现它非常冗长和复杂。我的USStateField现在不被认为是1.5中的自定义字段了吗?还有其他人在1.5中遇到过这个问题吗?你是怎么解决的?
答案 0 :(得分:12)
从django-localflavor版本1.0开始,只需在您的INSTALLED_APPS
添加“localflavor”就可以让South正确地选择它。 https://django-localflavor.readthedocs.org/en/latest/?highlight=south#installation
答案 1 :(得分:8)
您是否尝试过添加内省规则?
add_introspection_rules([], ["^django_localflavor_us\.models\.USStateField"])
答案 2 :(得分:2)
我不得不调整Hedde van der Heide的解决方案让我的工作。它看起来像这样:
add_introspection_rules([], ["^localflavor\.us\.models\.USStateField"])