我正在使用python 2.7.11
有一个模型让我们说Game
有一个TextField应该存储json值。选择TextField是因为数据库与hibernate ORM共享,本机不支持postgres JSONb。因此我有:
models.py:
@python_2_unicode_compatible
class Game(models.Model):
settings = models.TextField(default='{}')
serializers.py:
class GameSerializer(serializers.ModelSerializer):
settings = serializers.JSONField()
有没有一种干净的方法来处理这个问题,在数据库中使用有效的json字符串并通过API将它们作为json对象返回?
答案 0 :(得分:1)
您可以尝试以下内容:
import json
@python_2_unicode_compatible
class Game(models.Model):
settings = models.TextField(default='{}')
@property
def settings_json(self):
return json.loads(self.settings)
然后在序列化器中:
class GameSerializer(serializers.ModelSerializer):
settings = serializers.JSONField(source="settings_json")