javascript - 道场/请求 PUT 方法不起作用

标签 javascript python django dojo

我有一个使用 Python Django 和 Dojo 框架的网络应用程序。 我想从 Dojo(使用 dojo/request)向服务器 Django 发送 PUT 请求,但是当服务器收到请求时,其中的数据为空并且验证无效。 但是当我将方法从 PUT 更改为 POST 时,它工作正常。

这是我的代码:

_save: function(data){
        var idForm = "editForm" + this.id;
        var value = dijit.byId(idForm).get('value');
        console.log(value);
        request.put("/api/guestbook/"+this.bookName+"/greeting/"+this.id+"/", {
            data: {
                book_name: this.bookName,
                message: value.message
            },
            headers: { "X-CSRFToken": _cookie('csrftoken') }
        }).then(lang.hitch(this, function(text){

        }));
    },

在 Django 中:

def put(self, request, *args, **kwargs):
    form = self.get_form(self.form_class)
    logging.warning(form)
    logging.warning(request.PUT)
    if form.is_valid():
        logging.warning("This form is VALID")
    else:
        logging.warning("This form is INVALID!!!")

谁能帮帮我? 感谢您的帮助!

最佳答案

我在下面找到了接收 PUT 方法的方法:

def put(self, request, *args, **kwargs):
    request.PUT = QueryDict(request.body)
    form = self.form_class(request.PUT)
    if form.is_valid():
        logging.warning("This form is VALID")
    else:
        logging.warning("This form is INVALID")

没关系:)

谢谢大家!

关于javascript - 道场/请求 PUT 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29196352/

相关文章:

python - 即使整个管道都安装了,管道中的 Sklearn 组件也没有安装?

Django:在一个循环中遍历模板中的多个连续多对多关系

javascript - 使用 TFS 自动测试 JavaScript 应用程序

javascript - JQuery hide()/show() 适用于 FF/IE,但不适用于 Chrome

javascript - 单击弹出窗口中的注册或登录按钮后如何使弹出窗口保留

python - cx_Freeze 缺少模块

python - 如何在 python 中创建带循环的元组

python - Django 与 Heroku : Getting started

python - 无法在 MacOS sierra 上使用 pip3 安装 mysqlclient

javascript - 如何根据javascript变量更改html标题innertext