Python Django REST Framework 2.4.3中的多对多补丁没有立即响应
在具有多对多关系的端点上执行Python Django REST Framework 2.4.3中的多对多补丁没有立即响应,python,django,django-rest-framework,Python,Django,Django Rest Framework,在具有多对多关系的端点上执行补丁似乎会更新对象,但在下一个响应之前不会返回更新的数据,而不是在补丁响应中返回更新的数据 原始对象示例: { "id": 35, "interests": [ 1, 2 ], "personal_statement": "Hello World", "photo": "", "resume": "", "user": 2 } { "id": 35,
补丁
似乎会更新对象,但在下一个响应之前不会返回更新的数据,而不是在补丁
响应中返回更新的数据
原始对象示例:
{
"id": 35,
"interests": [
1,
2
],
"personal_statement": "Hello World",
"photo": "",
"resume": "",
"user": 2
}
{
"id": 35,
"interests": [
1,
2
],
"personal_statement": "Hello World",
"photo": "",
"resume": "",
"user": 2
}
{
"id": 35,
"interests": [
1,
2,
3,
4,
5
],
"personal_statement": "Hello World",
"photo": "",
"resume": "",
"user": 2
}
下一步获取响应的示例:
{
"id": 35,
"interests": [
1,
2
],
"personal_statement": "Hello World",
"photo": "",
"resume": "",
"user": 2
}
{
"id": 35,
"interests": [
1,
2
],
"personal_statement": "Hello World",
"photo": "",
"resume": "",
"user": 2
}
{
"id": 35,
"interests": [
1,
2,
3,
4,
5
],
"personal_statement": "Hello World",
"photo": "",
"resume": "",
"user": 2
}
{
“id”:35,
“利益”:[
1.
2.
3.
4.
5.
],
“个人声明”:“你好,世界”,
“照片”:“,
“简历”:“简历”,
“用户”:2
}
这是使用Django v1.7.4和Django REST框架v2.4.3
我的第一个假设是,由于它是一个多对多关系,它首先保存父对象,然后在保存多对多关系数据之前返回该数据,但我不能完全确定。任何帮助都将不胜感激。谢谢
编辑
这个问题实际上是Django REST框架上的一个公开问题,有一些可能的解决方案。这是由我的ViewSet queryset中与预回迁相关的引起的:
根据RESTAPI模式,补丁
请求执行部分更新,因此Django REST框架
只返回更新的数据
您可能希望覆盖补丁视图
以返回完整的序列化程序数据,或者将补丁
请求更改为放置
一个。我在添加与多对多字段相关的预取时遇到了相同的问题。我只需在序列化程序中添加自定义更新即可解决此问题:
def update(self, instance, validated_data):
super(SimpleClientModelResource, self).update(instance, validated_data)
return self.Meta.model.objects.get(id=instance.id)