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

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

3 回答 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

希望能帮助到你

于 2013-03-07T17:30:56.613 回答
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")
于 2013-03-08T01:16:07.330 回答
2

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

点安装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

于 2013-03-10T00:04:51.200 回答