Учитывая модель с именем MainModel
и RelatedModel
, где последняя имеет поле ForeignKey
до 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
, когда поле type
поля MainModel
instance True
, и показывают строки для RelatedModel2
, когда False
.
Я собирался создать дескриптор для атрибута ModelAdmin.inline_instances
, но я понял, что мне нужен доступ к редактируемому экземпляру объекта, но он передается как параметры.
Любая помощь?
Спасибо!