Здравствуйте, возникла задача создать двойной инлайн в админке, чтобы первый уровень был обычным, а второй с выбором "типа блока"
Допустим, есть какая-то модель Practicum, в которой создаются inline-ом, модели Screens, они имеют какие-то поля и возможность выбрать из ряда моделей, как это делается в polymorphic:
 
Я попытался сделать что-то такое:
class BlockInline(StackedPolymorphicInline):
    class ScreenTextBlockLeftInline(StackedPolymorphicInline.Child):
        model = ScreenTextBlock_left
    class ScreenImageBlockLeftInline(StackedPolymorphicInline.Child):
        model = ScreenImageBlock_left
# ... остальные блоки
    model = Blocks
    child_inlines = (
        ScreenTextBlockLeftInline,
# ... остальные блоки
    )
    polymorphic_on = 'block_type'
class ScreenInline(PolymorphicInlineSupportMixin, admin.StackedInline):
    model = Screens
    inlines = [BlockInline]
    fields = ['literature', 'leterature_approvals_and_decodings']
    extra = 0
class PracticumAdmin(PolymorphicInlineSupportMixin, admin.ModelAdmin):
    inlines = [ScreenInline]
    exclude = [
        'image_desktop_810px',
        'image_desktop_1620px',
        'image_mobile_400px',
        'image_mobile_800px'
    ]
    search_fields = ['title', 'description', 'pacient_description']
admin.site.register(Practicum, PracticumAdmin)
но Screens можно добавить, а вот внутри Screens нет выбора, как это исправить?