Возможно ли изменить порядок 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
, вы обнаружите, что они отображаются в том порядке, в котором вы их перечислили.