Javascript 使用Ajax更新特定对象中单个字段的正确方法
是否可以使用Ajax更新特定对象中的单个字段? 我有一个包含大量记录的postgres表,我想使用jqueryajax请求来更新该表中特定对象中的单个字段。这可以在不替换或重新发布整个记录的情况下完成吗 我想要这个(给我一个400错误的请求): 与此相反(有效): *注意:我使用的是Django,可以在views.py中轻松完成此更新,但我希望使用Javascript避免页面刷新 既然我也在使用Django Rest框架,那么创建一个特定于我要更新的字段的新端点是否更好?示例:Javascript 使用Ajax更新特定对象中单个字段的正确方法,javascript,jquery,ajax,django,django-rest-framework,Javascript,Jquery,Ajax,Django,Django Rest Framework,是否可以使用Ajax更新特定对象中的单个字段? 我有一个包含大量记录的postgres表,我想使用jqueryajax请求来更新该表中特定对象中的单个字段。这可以在不替换或重新发布整个记录的情况下完成吗 我想要这个(给我一个400错误的请求): 与此相反(有效): *注意:我使用的是Django,可以在views.py中轻松完成此更新,但我希望使用Javascript避免页面刷新 既然我也在使用Django Rest框架,那么创建一个特定于我要更新的字段的新端点是否更好?示例:/api/DB\u
/api/DB\u表/对象\u id/Field\u更新
谢谢 是的,您可以使用补丁HTTP方法来实现这一点,在REST术语中称之为部分更新。默认情况下,它已经在DRF中实现,因此您不必为此重写任何方法。这与PUT相反,PUT是一个完整的更新,需要您向请求中添加所有必需的字段,除非您重写默认行为我认为您可以以最简单的形式使用Django RestFramework库提供的
RetrieveUpdateAppiview
通用视图
这将公开以下API:
获取
:返回
对象
补丁
:更新对象数据(部分
,按照惯例)
PUT
:更新对象数据
参考:
如果您还希望支持删除
对象,则可以使用RetrieveUpdatedStroyapiView
,这将支持删除
来删除对象
参考资料:是的,您可以这样做-它需要在您的服务器中处理在您的路线上设置一个PUT方法来更新课程!这太明显了,我早该知道的。我将让Ajax ping端点,并在我的views.py文件(处理端点逻辑的地方)中让python更新特定对象中的单个字段。谢谢你在我的大脑放屁时的帮助:)@charlietfl它实际上是一块没有放的补丁
$.ajax({
type: "POST",
url: '/api/MyEndPoint/',
data: {
id: Specific_Record,
Field_To_Update: New_Value,
},
success: function(data){
console.log( 'success, server says '+data);
}
});
$.ajax({
type: "POST",
url: '/api/MyEndPoint/',
data: {
id: Specific_Record,
Field_To_Update: New_Value,
Field1: SameAsBefore,
Field2: SameAsBefore,
Field3: SameAsBefore,
...
Field16: SameAsBefore,
},
success: function(data){
console.log( 'success, server says '+data);
}
});