2016-11-16 19 views
0

我使用python 2.7.11DRF:JSONField在型號文本字段串行引起字串

一個有一個模型假設Game有一個本應存儲JSON值的文本字段。選擇TextField是因爲數據庫與休眠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

你可以嘗試這樣的:

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") 
相關問題