代码之家  ›  专栏  ›  技术社区  ›  luc

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

  •  8
  • luc  · 技术社区  · 13 年前

    我已经将现有的django 1.3迁移到了django 1.5。一切似乎都很好。然而,当我发出声音时,由于当地风味,我收到了一个贬损警告 python manage.py runserver

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

    我已经阅读了django 1.5的发布说明,我知道这个应用程序现在已经被弃用了。我的问题是我的项目中没有使用localflavor应用程序。

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

    • 如何知道为什么显示此警告?
    • 如何以干净的方式进行修复?
    3 回复  |  直到 13 年前
        1
  •  6
  •   craigds    13 年前

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

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

    这在django master中得到了修复(通过完全删除localflavor)。

    您可以通过在日志配置中添加一个ignore来静音警告:

    import warnings
    warnings.filterwarnings('ignore', r"django.contrib.localflavor is deprecated")
    
        2
  •  6
  •   Community Mohan Dere    6 年前

    更新:

    Django现在有一个单独的localfeatures包: 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资源, 去你的家乡 __init__.py 文件 打印一个stacktrace来知道哪里是不好的导入。

    http://docs.python.org/2/library/traceback.html

    希望能有所帮助

        3
  •  2
  •   eezis    13 年前

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

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