当需要实现动态 inlines fields 时,比如 Add 时显示,Change 时不显示,可以通过重载 admin 的 get_inline_instances
的方法达成:
def get_inline_instances(self, request, obj=None):
if obj:
return [inline(self.model, self.admin_site) for inline in self.inlines]
else:
return []
参考文档:https://docs.djangoproject.com/en/3.0/ref/contrib/admin/#modeladmin-methods