2017-02-16 9 views
1

Я использую Django версии 1.10.5 и Django Rest Framework 3.5.3 Я установил pip install jsonfield. Моя модель имеет это поле:Сохранение действительного JSON в JSONField через Django Rest Framework

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': ''}]}]" 

Несомненно, я могу просто сделать ответ 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