【发布时间】:2017-05-24 14:30:18
【问题描述】:
如何自定义 django 的内联管理表单的删除操作。我的 admin.py 设置如下。
#admin.py
class ChildModelInline(admin.TabularInline):
model = ChildModel
can_delete = True
#admin.py
@admin.register(ParentModel)
class ParentModelAdmin(admin.ModelAdmin):
inlines = [ChildModelInline,]
ChildModel 通过 models.ForeignKey 字段与 ParentModel 相关联。我希望能够在 ParentModel 的 Inline Form 上选择多个要删除的子对象,但不从数据库中删除子对象,只需删除子 obj 中的 ForeignKey 关系。
谢谢!
【问题讨论】:
-
首先
can_delete默认为true,你可以去掉它。至于删除子引用,需要重写ChildModel的delete方法,并将相关的ParentModelAdmin设置为None,不要删除子引用。