嘿,我对 Django 相当陌生,我希望动态编辑管理类变量(完整的想法是在添加时隐藏内联并仅在编辑时显示,但我在这里提炼了这个问题)。
有人可以解释为什么这不起作用吗?
class dbTablePermissionInline(admin.TabularInline):
model = dbPermission
class adminDbTable(admin.ModelAdmin):
inlines = [
dbTablePermissionInline,
]
def __init__(self, *args, **kwargs):
super(adminDbTable,self).__init__(*args, **kwargs)
self.inlines = []
当我在 self.inlines = [] 上方抛出一个 assert (assert False, self.inlines) 时,它正确地显示了内联,但内联仍然出现?即使我已经清空了列表。
帮助赞赏!
谢谢。
最佳答案
ModelAdmin
s __init__
方法 creates instances of the inline admin classes并将它们添加到 self.inline_instances
.所以设置self.inlines
之后更改为另一个值不会改变任何东西。你应该找到 this post ,处理类似问题很有帮助!
在 __init__
中设置这样的值也是没有意义的,因为 Modeladmin 实例创建一次并且可能会持续多个请求!
关于Django modelAdmin __init__ 和内联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3705075/