“不是有效字符串。”尝试将dict保存到Django Rest Fram中的TextField时出错

2024-05-27 12:16:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我的模型.py

class ApiLog(models.Model):
...
incoming_data = models.TextField('incoming data', null=True, blank=True)

序列化程序.py

^{pr2}$

视图.py

class ApiLogViewSet(APIView):
    def post(self, request, format=None):
        serializer = ApiLogSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()

在邮寄请求中,我发送:

data = {..., 
        'incoming_data':{"key1":"value1","key2":"value2"}
       }

当你想尝试时序列化程序。是否有效()我有错误:

{"incoming_data":["Not a valid string."]}

也许是因为我想把字典保存到TextField?在

是否可以将此词典保存到TextField?欢迎提出建议。在


Tags: py模型程序truedatamodel序列化models
2条回答

在序列化程序中尝试此操作:

class ApiLogSerializer(serializers.ModelSerializer):
    incoming_data = serializers.JSONField() # change is here

    class Meta:
        model = ApiLog
        fields = ('incoming_data',)

这将把您的JSONdict转换为字符串,并以Text的形式存储在数据库中。在

有关详细信息,请参阅official DRF documentation

试着用引号?公司名称:

data = {..., 
        'incoming_data':'{"key1":"value1","key2":"value2"}'
       }

相关问题 更多 >

    热门问题