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 翻译。
我有一个简单的模型:
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 翻译。