【发布时间】:2019-03-07 13:19:21
【问题描述】:
我有一个内联表单。相关模型具有唯一的共同约束(parent_id, number)。我有一个有两个孩子的实体
parent_id | number |
1 | 1 |
1 | 2 |
我正在尝试在一次操作中将这些子项编辑到状态
parent_id | number |
1 | 2 |
1 | 3 |
当我保存时,第一个条目出现错误:
Child with this parent_id and number already exists.
但是,如果我首先编辑第二个条目:
parent_id | number |
1 | 1 |
1 | 3 |
然后是第一个
parent_id | number |
1 | 2 |
1 | 3 |
在两个单独的操作中,它工作正常。
ParentAdmin 定义
class ParentAdmin(admin.ModelAdmin):
form = BaseForm
inlines = [LevelExerciseInline]
ChildInline 定义
class ChildInline(admin.StackedInline):
form = BaseForm
model = Child
extra = 3
【问题讨论】:
-
这是 parent_id 主键吗?
-
您能否将您的代码粘贴到“我正在尝试通过一项操作将这些子项编辑到该州” - 您是否将
queryset.update与F()结合使用?显然,现在,您的代码发出后续语句并且数据库正确拒绝它。 -
@NVS 用于父表,是的。对于子表,没有。
-
@Risadinha 我不明白你在说什么。我相信 django-admin 生成的更新操作。我没有为此做任何特殊的代码,只是定义了模型、管理表单和内联。
标签: django django-admin