【问题标题】:'SortedDict' object has no attribute 'insert'“SortedDict”对象没有“插入”属性
【发布时间】:2015-10-28 15:57:23
【问题描述】:

部署 AskBot 后,我​​发现一个异常错误:

/settings/QA_SITE_SETTINGS/处的 AttributeError
“SortedDict”对象没有“插入”属性

这是以下代码的结果:

langs_dict = SortedDict(django_settings.LANGUAGES)
default_code = django_settings.LANGUAGE_CODE
default_name = langs_dict[default_code]
langs_dict.insert(0, default_code, default_name) 

根据Django wikiSortedDict好像有insert的方法。

有什么想法吗?

这是完整的error page
相关:AskBot bug

【问题讨论】:

  • 从您链接的 wiki 页面:«SortedDict 自 Django 1.7 起已弃用,将在 Django 1.9 中删除。请改用​collections.OrderedDict。»我想这就是解决方法。
  • @9000 Django 版本是 1.7.10,因此尽管已弃用,但仍应受支持。你认为这是一个 Django 错误吗?
  • 不,这不是 Django 中的错误。 inserted 方法已被弃用,然后被删除。问题出在 AskBot 中。

标签: python django sorteddictionary askbot


【解决方案1】:

SortedDict.insert 方法在 Django 1.5 中被弃用,并在 Django 1.7 中被删除。您链接到的 wiki page 已过期,因此我从那里删除了对 insert 方法的提及。

SortedDict 本身在 Django 1.7 中已弃用,并将在 Django 1.9 中删除。

既然 Django 只支持 Python 2.7+,正确的解决方法是使用 collections.OrderedDict 而不是 SortedDict

【讨论】:

    猜你喜欢
    • 2016-07-22
    • 1970-01-01
    • 2021-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-01
    • 2021-12-09
    • 2013-12-05
    相关资源
    最近更新 更多