【问题标题】:Saving valid JSON into JSONField via Django Rest Framework通过 Django Rest Framework 将有效的 JSON 保存到 JSONField
【发布时间】:2017-02-16 13:44:24
【问题描述】:

我正在使用 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': ''}]}]"

当然,我可以做一个 replace("'",'"") 来使它成为有效的 json,但这似乎是一个 hack。

我应该如何发送 JSON 并使用其余框架将其保存为 JSON?

【问题讨论】:

    标签: django django-rest-framework


    【解决方案1】:

    好的,这成功了:

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

    【讨论】:

      猜你喜欢
      • 2023-01-27
      • 2018-03-27
      • 2021-08-17
      • 2019-07-11
      • 1970-01-01
      • 2013-08-23
      • 2020-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多