0

我正在创建一个 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现在会显示在标题上方,这对用户来说不是很直观。有没有办法改变这种行为?

4

1 回答 1

1

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

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

于 2021-08-17T16:32:00.867 回答