Django admin StackedInline如何去除新增/编辑页默认空白表单
Django Admin StackedInline 控制空白表单数量方法
核心实现逻辑为修改自定义StackedInline类的extra属性,该属性的默认值为3,对应创建主对象时默认渲染的空白关联表单数量,按需调整参数即可实现需求。
效果对照
- 默认效果(extra=3):

- 期望效果:

代码实现
场景1:完全不渲染空白表单,仅保留添加按钮
将extra设为0即可:
from django.contrib import admin from .models import ParentModel, ChildModel # 替换为你自己的主模型、关联模型类名 class ChildStackedInline(admin.StackedInline): model = ChildModel extra = 0 # 核心配置,无默认空白表单 @admin.register(ParentModel) class ParentAdmin(admin.ModelAdmin): inlines = [ChildStackedInline]
场景2:保留1个空白表单,可继续新增
将extra设为1即可:
class ChildStackedInline(admin.StackedInline): model = ChildModel extra = 1 # 仅保留1个默认空白表单
补充:如果需要限制关联对象的最大添加数量,可额外配置
max_num参数,例如max_num = 3表示最多只能添加3个关联对象。
内容的提问来源于stack exchange,提问作者Marin Leontenko
相关产品推荐
相关产品推荐

