我正在尝试创建一个功能齐全的M2M(通过表)嵌套序列化程序,它在create()上非常有效。但是,当我获取包含嵌套记录的id的GET版本的序列化程序返回的JSON,并对同一个序列化程序执行PUT时,"id"字段在它到达update()方法时会从嵌套记录validate_data中删除。
{
"id": 1,
"addresses": [
{
"id": 1, # This is ripped out
"city": "Oakville",
"addr": "13 Main St",
"postal_code": "01101"
},
{
"id": 2, # This is ripped out
"city": "Watertown",
"addr": "88 Main St",
"postal_code": "01101"
},
"customer_number": 1234,
"customer_type": 1,
"pricing_sequence": 2,
"name": "Customer number 1234"
}
有什么想法吗?
是的,这是django-rest框架的副本:DATA-don';t更新型号ID
我想我想通了。ModelSerializer似乎默认情况下会将"id"字段设为只读。解决方案是向序列化程序中添加显式的"id"字段。参见tomchristie的评论https://github.com/tomchristie/django-rest-framework/issues/2114