如何在django 1.5中修复localflavor弃用警告?

时间:2013-03-07 17:22:04

标签: python django django-1.5 django-localflavor

我已将现有的django 1.3迁移到django 1.5。一切似乎都好。但是,当我发出python manage.py runserver

时,由于localflavor,我有一个弃用警告
  

... \ 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?)但是我没有解决这个警告。

  • 如何知道此警告显示的原因?
  • 如何以干净的方式修复它?

3 个答案:

答案 0 :(得分:6)

更新

  

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

希望有所帮助

答案 1 :(得分:6)

这是django 1.5中的一个错误。 Django本身正在触发警告。

罪魁祸首是django/contrib/gis/utils/layermapping.py#L19

这是在django master中修复的(通过完全删除localflavor)。

您可以通过在日志配置中添加忽略来使警告静音:

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

答案 2 :(得分:2)

刚刚处理同样的问题。我安装了新软件包(美国软件包的示例):

pip install 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