是否可以在 Wagtail 管理中重新排序 content_panels?

Is it possible to reorder the content_panels in Wagtail admin?

我正在创建一个 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'),
    ]

在ChildModel编辑器的Wagtail admin中,some_attribute现在会显示在title上方,不太直观给用户。有没有办法改变这种行为?

对于片段,要使用的正确属性名称是 panels,而不是 content_panels。 (对于页面,“content_panels”中的“内容”指的是内容选项卡而不是“推广”选项卡 - 片段没有这些选项卡,除非您明确添加它们。)您可能也没有想引用 Page.content_panels,因为这不是页面模型。

由于您没有 panels 属性,因此它会退回到按定义顺序列出字段。将 content_panels 更改为 panels 后,您会发现它们会按照您列出的顺序显示。