2017-02-16 67 views
1

我使用Django 1.10.5版和Django Rest Framework 3.5.3 我也安裝了pip安裝jsonfield。我的模型有這一領域:通過Django Rest Framework將有效的JSON保存到JSONField中

tags = JSONField(blank=True, default="") 

這是我發送到我的服務器上的數據:

{ 
    "latitude": 31.65431, 
    "longitude": -28.29471, 
    "accuracy": 5, 
    "upload_type":"3", 
    "share_group":1555, 
    "description": "Testing a event from mobile application", 
    "timestamp": "2017-02-16T09:27:23Z", 
    "tags": [{"tagId": 29,"values": [{"fieldId": 193,"value": "CYX 544 GP"},{"fieldId": 194,"value": ""}]}] 
} 

我得到這個錯誤:

"tags": ["Not a valid string."] 

只有這樣,才能得到這個保存是這樣的:

"tags":[{'tagId': 29,'values': [{'fieldId': 193,'value': 'CYX 544 GP'},{'fieldId': 194,'value': ''}]}]" 

當然,我可以做一個repl ace(「'」,'「」)可以使json成爲有效的,但這看起來像一個黑客攻擊。

我應該如何發送JSON並使用其餘框架將其另存爲JSON?

回答

1

好吧,這工作:

class EventSerializer(serializers.ModelSerializer): 
    tags = serializers.JSONField() 
    class Meta: 
     model = Event 
     fields = ('client', 'latitude', 'upload_type', 'accuracy', 'longitude', 'description', 'tags', 'timestamp') 
+0

不錯,但這個數據不應該;噸進入一個Jsonfield。 – e4c5