我使用的是Django版本1.10.5和Django Rest Framework 3.5.3 我也安装了pip install 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': ''}]}]"
当然,我可以做一个替换("'",'"")以使其成为有效的json,但这似乎是黑客攻击。
我应该如何发送JSON并使用其余框架将其保存为JSON?
答案 0 :(得分:1)
好的,这很有效:
class EventSerializer(serializers.ModelSerializer):
tags = serializers.JSONField()
class Meta:
model = Event
fields = ('client', 'latitude', 'upload_type', 'accuracy', 'longitude', 'description', 'tags', 'timestamp')