JSONField被保存为字符串django

时间:2015-10-12 09:16:12

标签: python django-jsonfield

我有一个类似下面的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模型。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:-1)

请尝试:

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