Django - 管理 - 内联 - 基于某些条件的“额外”值

Siv*_*lam 3 django django-admin

是否可以在 Django Admin Inline 中动态设置“额外”选项?

例如,如果 Student 类将 Address 类设置为内联。如果没有与 Student 关联的内联地址,则 extra =1。如果有任何与 Student 相关的内联地址,则 extra =0。

小智 6

只需简单地重写get_extra方法即可。以下示例将添加视图的 extra 设置为 0,将编辑视图的 extra 设置为 10。

class MyInline(admin.TabularInline):
    model = MyModel

    def get_extra(self, request, obj=None, **kwargs):
        return 0 if obj else 10
Run Code Online (Sandbox Code Playgroud)