python - Django Rest 框架 - 解析 post() 中的键值对

标签 python django django-rest-framework

当用户输入 POST API 数据时,他们将输入 A 和 B 键值对。我想修改 post() 以满足我的需要。我想在用户点击提交或发布 API 数据时解析以下内容。

是否要在 api View 返回这些字段之前(或当用户单击提交时)解析这些字段?

这是用户尝试使用 POST API 发布的内容。

[
    {
        "A": "1234",
        "B": "12345",
    },
]

我做了什么:

View .py

class MyModelList(generics.ListCreateAPIView):
    queryset = MyModel.objects.all()
    serializer_class = MyModeSerializer
    permission_classes = (permissions.IsAuthenticated,)

def post(self, request, *args, **kwargs):
     ##parse A values from key value pair so that value == 1234
     ##parse B values from key value pair so that value == 12345
     return self.create(request, *args, **kwargs)

模型.py

class Models(models.Model):
    A = models.CharField(max_length=255, null=False)
    B = models.CharField(max_length=255, null=False)

最佳答案

您需要将数据解析为 key 对。试试这个:

class MyModelList(generics.ListCreateAPIView):
    queryset = MyModel.objects.all()
    serializer_class = MyModeSerializer
    permission_classes = (permissions.IsAuthenticated,)

    def post(self, request, *args, **kwargs):
        pairs = request.data()
        for pair in pairs:
            model = Models.objects.create(**pair)
        return Response({"results": "saved"})

关于python - Django Rest 框架 - 解析 post() 中的键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54771589/

相关文章:

python - 尝试计算 .txt 文件中的特定字符串 (python)

python - 如何使用 Universal Feed Parser 删除 html 标签?

python - Django 邮件未保存(文件后端)

python - "<Message: title>"需要具有字段 "id"的值才能使用此多对多关系。

python - 使用序列化器作为查询参数验证器是一个好习惯吗?

django - 如果 django rest 中提供了未经授权的凭据,如何发送自定义响应

python - 我如何告诉 sympy i^2 = -1?

python - 将多索引与 Pandas 中的单索引数据框合并

python - python脚本输出末尾的百分号

python - 带有 token 参数的 Django 电子邮件验证 URL