给定一个名为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显示内联。typeMainModelTrueRelatedModel2False
我打算为属性创建一个描述符ModelAdmin.inline_instances,但我意识到我需要访问正在编辑的对象实例,但它是作为参数传递的。
有什么帮助吗?
谢谢!