Skip to main content
 首页 » 编程设计

python之Django 管理员 : add inlines dynamically

2025年05月04日28Free-Thinker

class MyTemplateAdmin(admin.ModelAdmin): 
list_display = ('name') 
search_fields = ['name'] 
inlines = [ 
    Template1Inline, 
    Template2Inline, 
    Template3Inline, 
] 

这很好用。但我需要的是让它充满活力。每当管理员向 MyTemplate 模型添加新模板时,都需要将其添加到内联中。

有没有办法做到这一点?如果我对我的问题不够清楚,请发表评论。 提前致谢!

请您参考如下方法:

只需覆盖管理员的 get_inline_instances.

def get_inline_instances(self, request, obj=None): 
    _inlines = super().get_inline_instances(request, obj=None) 
    custom_inline = YourDynamicInline(self.model, self.admin_site) 
    _inlines.append(custom_inline) 
    return _inlines