django-tastypie PATCH 给了我一个“400(错误请求)”

2024-01-09

我正在 Apache 上运行一个 Django 站点,该站点以 Nginx 实例为前端,为我的静态媒体提供服务。

我通过 django-tastypie 将 API 暴露给需要修补字段的模型。当我进行本地测试(通过 django runserver)时,一切都按预期工作。然而,在实时服务器上,我收到返回的“400(错误请求)”。

我看过一些地方说Nginx不支持PATCH?是对的吗?有没有一个好的解决方法?难道我做错了什么?

我只通过我想要更新的字段发送postData.

jQuery 代码:

$.ajax({url: '...',
    type: 'PATCH',
    accepts: 'application/json',
    contentType: 'application/json',
    dataType: 'json',
    data: postData,
    processData: false,
    success: function() {
        // Success Code!
    },
    error: function() {
        // Error Code!
    }
});

美味派资源:

class ReceivedMessageResource(ModelResource):
    """
    """
    campaign = fields.ForeignKey(CampaignResource, 'campaign')
    campaign_name = fields.CharField(readonly=True)
    campaign_id = fields.IntegerField(readonly=True)
    message_type = fields.CharField(readonly=True)
    display_date = fields.CharField(readonly=True)
    attachments = fields.ToManyField('apps.campaign.api.AttachmentResource',
                                     'attachment_set',
                                     related_name='message',
                                     full=True)

    class Meta:
        queryset = ReceivedMessage.objects.all()
        resource_name = 'message'
        filtering = {'id': ALL,
                     'campaign': ALL_WITH_RELATIONS}
        excludes = ['reason', 'provider', 'loyalty_profile', 'original_message', 'date_received']
        allowed_methods = ['get', 'post', 'put', 'delete', 'patch']
        paginator_class = ReceivedMessagesPaginator
        authentication = ApiKeyAuthentication()
        authorization = DjangoAuthorization()

任何有关如何对此进行排序的指示将不胜感激:)


如果您使用的是最新版本的 TastyPie(来自 GitHub 存储库的版本,自 8 月 5 日起),您可以按照说明进行操作从文档中 http://django-tastypie.readthedocs.org/en/latest/resources.html#using-put-delete-patch-in-unsupported-places:

Using PUT/DELETE/PATCH在不受支持的地方

有些地方,例如某些浏览器或主机,不允许PUT/DELETE/PATCH方法。在这些环境中,您可以通过提供X-HTTP-Method-Override标头。例如,发送一个PATCH请求结束POST,您将发送如下请求:

curl --dump-header - -H "Content-Type: application/json" -H "X-HTTP-Method-Override: PATCH" -X POST --data '{"title": "I Visited Grandma Today"}' http://localhost:8000/api/v1/entry/1/

因此,如果您的主机不支持此方法,请添加X-HTTP-Method-Override标头包含您尝试执行的方法的名称。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

django-tastypie PATCH 给了我一个“400(错误请求)” 的相关文章

  • 暂时禁用提交按钮

    我有一个将大文件上传到服务器的表单 像这样的事情
  • jquery中文本区域自动调整大小

    我怎样才能做一个
  • 如何绑定div宽度/高度来形成字段?

    我想创建多个div我可以移动和调整大小 并绑定它们width height等到数组中的对象 因此 如果我创建六个 div 我的数组中有六个对象 每个对象都有 width height etc 我不太明白如何使用 knockout js 将输
  • Wagtail 自定义管理

    我是 Wagtail 和 Django 开发的新手 如何更改 Wagtail 管理页面的颜色 根据一些问答 我可以通过 core css 更改颜色 但是扫描代码需要很多时间 有一个更简单的方法 您可以注册 Wagtail Hook 在此处阅
  • ALLOWED_HOSTS 在部署到 Elastic Beanstalk 的 Django 应用程序中不起作用

    我将 Django 应用程序部署到 AWS Elastic Beanstalk 即使我已将其添加到允许的主机设置中 我仍收到 无效的 HTTP HOST 标头 错误 我收到此错误 Invalid HTTP HOST header recor
  • Django 之外的 Django 模型

    我有一个非 Django 项目 我想使用 Django 模型作为数据访问层 添加了模型库requirements txt django model utils 3 1 1 代码设置如下 from django conf import set
  • 在 javascript/jquery 中将光标更改为等待

    当调用函数时 如何让光标更改为此加载图标以及如何将其更改回 javascript jquery 中的普通光标 在你的 jQuery 中使用 body css cursor progress 然后又恢复正常 body css cursor d
  • 如何同步两个文本框表单值?

    大家好 我是 jQuery 新手 假设我有两个 HTML 文本框 如何才能实现这样的情况 如果我在文本框 A 中写入 则相同的值会转到文本框 B 如果我在 B 中写入 则相同的值会转到 A 与删除文本相同 在 jQuery 中如何做到这一点
  • Jquery 组合 SlideUp/Down 并单击

    我创建了两个脚本 其中一个具有向上滑动和向下滑动命令 这些命令在页面加载时作用于计时器 第二个是单击事件 其中单击链接时执行向上 向下滑动命令 这两个脚本都是单独工作的 但我无法让它们一起工作 这是定时向上 向下滑动脚本 document
  • 解析“流”JSON

    我在浏览器中有一个网格 我想通过 JSON 将数据行发送到网格 但浏览器应该在接收到 JSON 时不断解析它 并在解析时将行添加到网格中 换句话说 在接收到整个 JSON 对象后 不应将行全部添加到网格中 应该在接收到行时将其添加到网格中
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • 删除某个类之后的所有类

    我有一个 lt div id thisdiv class class1 class2 class3 class4 class5 gt text lt div gt 我需要能够使用 jQuery 删除 class3 之后的所有类 就像是 th
  • 如何使用 DJango Rest Framework 上传多个图像?

    我可以使用以下代码上传单个图像 如果我选择多个图像 则仅上传所选图像中的最后一个图像 模型 py class Image models Model property id models ForeignKey properties Addre
  • 如何监听 jQuery AJAX 请求?

    以下两种实现 ajaxRequest 1 2 的方法应该是等效的 话说回来 为什么验证回调已执行的单元测试 3 在 1 中成功而在 2 中失败 我应该如何重写测试 3 来监视 2 中的成功回调 如果我尝试stub jQuery ajax使用
  • 可以使用 jQuery 或 Javascript 将图片的特定部分用作链接吗?

    我有这个想法 将图片 而不是文本 的各个部分链接到不同的页面或网站 并且我想在不实际创建不同的照片并将它们彼此靠近的情况下完成 这样看起来就像是一张完整的图片 这里有人知道如何使用 JavaScript 的变体 例如 jQuery 或纯 J
  • 表单计算器脚本基本价格未加载 OnLoad

    我的表单中有一个计算器来计算我的下拉选项选择 function select calculate on change calc input type checkbox calculate on click calc function cal
  • jQuery 获取元素内的鼠标位置

    我希望制作一个控件 用户可以在 div 内单击 然后拖动鼠标 然后松开鼠标以指示他们想要的内容有多长 这是针对日历控件的 因此用户将指示特定事件的时间长度 看起来最好的方法是在父 div 上注册一个 mousedown 事件 而父 div
  • 如何获取给定 DOM 元素的所有定义的 CSS 选择器?

    如何使用 jQuery 获取给定 DOM 元素的所有定义的 CSS 选择器 定义后 我的意思是在应用于任何样式表的所有 CSS 选择器document 在某种程度上 这类似于 FireBug 实现的功能 其中显示所选 DOM 元素的所有应用
  • 长轮询会冻结浏览器并阻止其他 ajax 请求

    我正在尝试在我的中实现长轮询Spring MVC Web 应用程序 http static springsource org spring docs 2 0 x reference mvc html但在 4 5 个连续 AJAX 请求后它会
  • fullCalendar 未显示正确的结束日期

    我正在看调试页面 http jsbin com wukofacaxu edit js outputFullCalendar 官方网站的 我想安排一个活动时间为 22 09 2015 至 30 09 2015 dd mm yyyy 但它只显示

随机推荐