【问题标题】:How to fix localflavor deprecation warning in django 1.5?如何修复 django 1.5 中的 localflavor deprecation 警告?
【发布时间】:2013-02-23 00:50:17
【问题描述】:

我已将现有的 django 1.3 迁移到 django 1.5。一切似乎都很好。但是,当我启动 python manage.py runserver 时,由于 localflavor,我有一个弃用警告

...\env\lib\site-packages\django\contrib\loca lflavor__init__.py:2: 弃用警告:django.contrib.localflavor 已弃用。使用 而是单独的 django-localflavor-* 包。
warnings.warn("django.contrib.localflavor 已弃用。使用 而是单独的 djan go-localflavor-* 包。", DeprecationWarning)

我已阅读 django 1.5 发行说明,并且我知道该应用程序现已弃用。我的问题是我的项目中没有使用 localflavor 应用程序。

我想另一个应用程序正在以某种方式加载它(可能是 localeurl 或 modeltranslation?),但我不知道如何修复此警告。

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

【问题讨论】:

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

标签: python django django-1.5 django-localflavor


【解决方案1】:

这是 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】:

    更新:

    Django 现在有一个本地风味包: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

    希望对你有帮助

    【讨论】:

    • 谢谢。我会尝试找到正在导入它的内容。
    【解决方案3】:

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

    点安装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'
    猜你喜欢
    • 2013-03-14
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-28
    • 1970-01-01
    • 2019-08-08
    相关资源
    最近更新 更多