【问题标题】:Updating user in Django with Backbone.js and Tastypie使用 Backbone.js 和 Tastypie 在 Django 中更新用户
【发布时间】:2012-05-16 14:11:56
【问题描述】:

使用 Backbone 和 Tastypie 更新 Django 的用户属性(特别是 passwordemail)的正确方法是什么?

总的来说,在这两种情况下,从 API 的角度来看,什么是好的工作流程?

【问题讨论】:

    标签: django backbone.js tastypie


    【解决方案1】:

    这种“单字段”更新由 PATCH HTTP 动词处理。所以你应该用这个方法和你想要更新的数据来做一个 Ajax 请求。

    在 curl 中,它会是:

    curl --dump-header - -H "Content-Type: application/json" -X PATCH --data '{"email": "new@email.com"}' "http://localhost:8000/api/v1/user/1/"
    

    关于 Backbone,这不是必需的。您可以保留 User 模型并使用 sync 方法,但使用 Jquery.ajax() 调用就足够了。

    jquery:

    $.ajax({
      type: 'PATCH',
      url: http://localhost:8000/api/v1/user/1/,
      data: "{'email': 'new@email.com'}",
      success: function(){/* your logic */},
      contentType: "application/json"
    });
    

    【讨论】:

    • 是的,这很清楚。但我说的是更一般的东西。就像通过 API 更新电子邮件字段的逻辑一样。在更新之前做一些电子邮件确认通常是有意义的。
    • 如果您从 ModelResource 类创建了 UserResource,则无需执行任何操作。关于确认,这是您必须在您的视图中处理的事情。 API 是任何流程的最后一步。
    • PATCH 是调用部分更新的正确动词。在后台,Tastypie 读取整个对象并发布更新 (PUT)。您必须创建您的视图(在这种情况下使用 HTML 和 JS)并要求您的用户确认。一旦被接受,您就可以使用 API 修改数据。
    猜你喜欢
    • 1970-01-01
    • 2023-03-22
    • 2013-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-27
    • 2012-08-17
    相关资源
    最近更新 更多