Django Admin:动态添加内联

Sai*_*kat 4 python django django-models django-admin

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

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

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

not*_*der 5

只需覆盖管理员的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
Run Code Online (Sandbox Code Playgroud)