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

8

我将现有的Django 1.3迁移到了Django 1.5,一切似乎都很好。但是,当我启动python manage.py runserver时,由于本地化问题,我收到了一个弃用警告。

...\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?),但我不知道如何修复此警告。

  • 如何知道为什么会显示此警告?
  • 如何以干净的方式修复它?

我因为同样的错误信息而来到这里,但实际上是由于使用了localflavor,标题有点误导人,因为这个问题已经在最新版本的Django中得到了修复,但不是同一个问题...对于这两个问题仍然提供答案。 - Nick
3个回答

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

希望有所帮助。

谢谢。我会尝试找出导入它的内容。 - luc

6

这是django 1.5中的一个bug。Django本身会触发警告。

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

在django master中已经修复了这个问题(通过完全删除localflavor)。

您可以通过在日志配置中添加忽略来消除警告:

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

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

您还需要从您的 settings.py 中的 INSTALLED_APPS 中移除 'django.contrib.localflavor' - Banjer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接