5

我有一个如下的 Django 模型:

from jsonfield import JSONField
class SCUser(User):
    address = JSONField(blank=True,null=True)

当我在此地址中保存一个 json 时,它会保存为字符串。这是一个代码片段:

appuser.address = {"state":""}
appuser.save()

现在,如果我尝试检索 appuser.address 它给了我

>>>appuser.address
>>>u'{"state":""}'
>>>appuser.save()
>>>appuser.address
>>>u'"{\\"state\\":\\"\\"}"'

而且它是递归的。我在这里想念什么?

编辑: AppUser 继承自 SCUser 模型。

4

2 回答 2

0

当我使用非 Autofield 键作为模型的主键时,我遇到了这个问题,并且我发现了一些在 github 上仍然存在的与此问题相关的问题。

https://github.com/dmkoch/django-jsonfield/issues/92

https://github.com/dmkoch/django-jsonfield/issues/101

我通过在模型中定义一个 pk 属性解决了这个问题。我不知道使用此解决方案是否有任何副作用。

class SCUser(User):
    ....

    @property
    def pk(self):
        return self.id  # your pk
于 2019-06-29T11:06:20.237 回答
-2

请试试:

appuser.address = {"state":""}
appuser.save()
appuser.get_data_json()
于 2015-10-12T09:31:01.753 回答