给定一个名为MainModel
和 a的模型RelatedModel
,其中后者有一个ForeignKey
字段 to MainModel
:
class MainModel(models.Model):
name = models.CharField(max_length=50)
type = models.BooleanField()
class RelatedModel1(models.Model):
main = models.ForeingKey(MainModel):
name = models.CharField(max_length=50)
class RelatedModel2(models.Model):
main = models.ForeingKey(MainModel):
name = models.CharField(max_length=50)
和相应的 ModelAdmin 类:
class RelatedModel1InlineAdmin(admin.TabularInline):
model = RelatedModel1
class RelatedModel2InlineAdmin(admin.TabularInline):
model = RelatedModel2
class MainModel(admin.ModelAdmin):
inlines = [RelatedModel1, RelatedModel2]
这是默认行为,你会得到两个内联,一个用于每个相关模型。问题是如何在MainModel
创建实例时完全隐藏所有内联(ModelAdmin
's add_view
),并在实例字段为RelatedModel1
时显示内联,并在when显示内联。type
MainModel
True
RelatedModel2
False
我打算为属性创建一个描述符ModelAdmin.inline_instances
,但我意识到我需要访问正在编辑的对象实例,但它是作为参数传递的。
有什么帮助吗?
谢谢!