从 django 中的发布请求中获取数据非表单数据 [关闭]

Posted

技术标签:

【中文标题】从 django 中的发布请求中获取数据非表单数据 [关闭]【英文标题】:Get data non form data from post request in django [closed] 【发布时间】:2021-11-01 01:55:29 【问题描述】:

我尝试提交有关更改的数据,并根据来自 POST 请求的数据更改视图的响应。

      $.ajax(
        url: $basicAnalysisChart.data("url"),
        type: "POST",
        headers:
        "X-CSRFToken": csrftoken
    ,
        dataType: "json",
        contentType: 'application/json; charset=utf-8',
        data:
            selector1:$("#Select1").val(),
            selector2:$("#Select2").val()
        ,

我尝试使用 request.POST.get("Select1", "") request.POST.get("selector1", "") 在我的视图中获取该数据,但无法正常工作。

【问题讨论】:

【参考方案1】:

由于你的数据类型是 JSON,在 django 中你应该说

data = request.body

代替:

request.POST.get("Select1", "")

来自文档:“如果您需要访问请求中发布的原始数据或非表单数据,请改为通过 HttpRequest.body 属性访问。”

这里是文档的链接:https://docs.djangoproject.com/en/3.2/ref/request-response/#django.http.HttpRequest.POST

【讨论】:

但如果我这样做,我只会得到``` b'[object Object]' ```作为数据。我找不到任何关于如何从那里开始的信息 好吧,那是另一个问题。请在 Django 中搜索 request.body 的处理。这是一个关于此主题的问题:***.com/questions/29514077/…【参考方案2】:

我没有正确格式化 json 对象,所以它不能工作。问题解决了

【讨论】:

请在您的回答中提供更多详细信息。正如目前所写的那样,很难理解您的解决方案。 ...它对未来/其他读者没有帮助。比如,你原来的 JSON 对象有什么问题?你是如何正确格式化的?

以上是关于从 django 中的发布请求中获取数据非表单数据 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

django ajax 请求获取选定的索引

Django:从 HTML 中获取 LIST 数据,无需表单或模型

从 Django 中的表单发送 DELETE 请求

从 Django 中的表单发送 DELETE 请求

Django 表单中的 CSRF 令牌丢失或不正确

我可以有一个没有模型的 Django 表单吗