Django 更新具有嵌套对象且设置了“深度”选项的对象

Django 更新具有嵌套对象且设置了“深度”选项的对象,django,serialization,django-rest-framework,Django,Serialization,Django Rest Framework,我相信这个问题可以修改得更清楚 我有一些模型;列出,将项目列为: 类列表(models.Model): name=CharField() active=Boolean() 已创建=日期时间(自动添加) 更新=日期时间(自动更新) 作者=外键(自定义用户) 类列表项(models.Model): 名称=。。。 列表=外键(列表) associatedItem=ForeignKey(someModel) 活动=。。。 创建=。。。 更新=。。。 及其序列化程序为: 类ListItemSeriali

我相信这个问题可以修改得更清楚

我有一些模型;列出,将项目列为:

类列表(models.Model):
name=CharField()
active=Boolean()
已创建=日期时间(自动添加)
更新=日期时间(自动更新)
作者=外键(自定义用户)
类列表项(models.Model):
名称=。。。
列表=外键(列表)
associatedItem=ForeignKey(someModel)
活动=。。。
创建=。。。
更新=。。。
及其序列化程序为:

类ListItemSerializer(serializers.ModelSerializer):
类元:
模型=列表项
depth=2#因为我也想在序列化程序中获得关于“associatedItem”的详细信息。
fields=“\uuuu all\uuuuuu”
类ListSerializer(ModelSerializer):
listitem_set=ListItemSerializer(many=True)
类元:
模型=列表
fields=“\uuuu all\uuuuuu”
def创建(自我验证的_数据):
#创建新列表对象
#并从已验证的_数据中获取listitem_集,创建它并与当前列表关联
def更新(自身、实例、已验证的_数据):
#从已验证的\u数据中弹出listitem\u集,为每个数据创建新的listitem
#更新包含已验证的_数据的实例
使用序列化程序是平稳的,当我尝试创建/更新
列表时会出现问题。
当我传递数据时,如:

{
“名称”:“SomeList”,
“主动”:正确,
"作者":1,,
“列表项_集”:[
{
“名称”:“ListItem1”,
“主动”:正确,
“相关项目”:32
}
]
}
指定时出错:
IntegrityError
非空约束失败:list\u listitem.associatedItem\u id

我希望这个问题有意义。如果我能说清楚,请告诉我

编辑:如果我删除
深度
选项,一切正常。创建、更新也可以很好地工作。 我想知道
depth
选项是否有用。我在序列化程序(api)中获取冗余数据。 但是,如果我不使用深度,我将不得不手动获取所有内容