Django modelAdmin __init__ 和内联

标签 django class admin

嘿,我对 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/

相关文章:

java - 如何从类访问我的 MainActivity 中的 TextView?

python - 在 Django Admin 中用富文本编辑器替换 textarea?

python - 在 django 文件字段中保存 base64 图像

python - 无法更新 Django 1.9 BooleanField

python - 为什么连续上传同一个文件时收到空的InMemoryUploadedFile对象

python - 通过 Django 管理站点添加数据时更改大小写(大写/小写)

sql-server - Azure SQL 数据库审计/管理

python - 在模型的 `clean` 方法中引发与字段关联的 ValidationError

javascript - Mootools/Prime 中的类、选项

c++ - 我可以通过此类的实例访问类的成员类型吗?