Возможно ли изменить порядок content_panels в админке Wagtail?

Я создаю приложение Wagtail, в котором некоторые модели наследуют поля от базовой модели. К сожалению, эти базовые поля всегда отображаются первыми в форме, создаваемой Wagtail. Например:

class BaseModel(models.Model):
    some_attribute = models.TextField()

    class Meta:
        abstract = True

    content_panels = [
        FieldPanel('some_attribute'),
    ]

@register_snippet
class ChildModel(BaseModel):
    title = models.TextField()

    content_panels = Page.content_panels + [
        FieldPanel('title'),
    ]

В админке Wagtail в редакторе ChildModel, some_attribute сейчас отображается над title, что не очень интуитивно понятно для пользователей. Есть ли способ изменить это поведение?

Для сниппетов правильное имя атрибута panels, а не content_panels. (Для страниц "content" в "content_panels" относится к вкладке content, а не к вкладке "promote" - у сниппетов нет таких вкладок, если только вы их явно не добавите). Возможно, вы также не захотите ссылаться на Page.content_panels, потому что это не модель страницы.

Поскольку у вас нет атрибута panels, он возвращается к перечислению полей в порядке определения. Как только вы измените content_panels на panels, вы обнаружите, что они отображаются в том порядке, в котором вы их перечислили.

Вернуться на верх