通过Django Rest Framework

时间:2017-02-16 13:44:24

标签: django django-rest-framework

我使用的是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?

1 个答案:

答案 0 :(得分:1)

好的,这很有效:

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