Error when saving HStoreField using Admin: TypeError: expected string or buffer

Error when saving HStoreField using Admin: TypeError: expected string or buffer

我有一个简单的模型:

class TestModel(models.Model):
    test_store = HStoreField()

我根据 HStoreField 编辑了此模型的迁移 docs

我用测试数据 {"foo": "bar"} 创建一个对象没有问题,并且在管理员中,test_store 的字段显示了这样的值,但是当我尝试用管理员保存它时,我收到以下错误:

TypeError: expected string or buffer

为什么?

我正在使用 Django 1.8.3 和 Python 2.7.9

提示:它似乎将数据作为 {u'foo': u'bar'} 和 运行 传递到 JSONDecoder 的问题中:

    def decode(self, s, _w=WHITESPACE.match):

        """Return the Python representation of ``s`` (a ``str`` or ``unicode``

        instance containing a JSON document)

        """

                    obj, end = self.raw_decode(s, idx=_w(s, 0).end())

 ...

        end = _w(s, end).end()

        if end != len(s):

            raise ValueError(errmsg("Extra data", s, end, len(s)))

        return obj

    def raw_decode(self, s, idx=0):

发生此错误是因为在 json.load() 中传递了一个类型为 dict() 的变量。这 bug is fixed 在下一个 django 版本中。 我为我的英语道歉,我使用了 google 翻译。