Django嵌套序列化器更新Company字段失败问题排查
Django REST API 序列化器更新Company名称失败问题
模型定义
Company模型
class Company(models.Model): companyID = models.BigAutoField(primary_key=True) name = models.CharField(max_length=50)
Employee模型
class Employee(models.Model): employeeID = models.BigAutoField(primary_key=True) companyID = models.ForeignKey(Company, db_column="companyID", related_name='employees', on_delete=models.CASCADE) email = models.CharField(max_length=50)
需求
需要实现一个序列化器,接收如下格式的PUT请求数据,同时更新数据库中对应的Company及关联Employee的所有字段:
{ "companyID": 3, "name": "New Name", "employees": [ { "employeeID": 31, "email": "goreca7783@fulwark.com" } ] }
问题及调试信息
编写的CompanyEmployeeSerializer可以正常更新员工数据,但更新Company的name字段失败。调试时已获取到新的名称值,但保存后数据库中仍为旧值。
相关代码片段:
instance[0].name= validated_data.get('name', instance[0].name)
调试打印内容:
================VALIDATED_DATA================= New Name ================BEFORE_SAVE==================== Test2 Company =================AFTER_SAVE==================== Test2 Company
内容的提问来源于stack exchange,提问作者Pollák Bence
相关产品推荐
相关产品推荐

