我正在创建一个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'),
]在some_attribute编辑器中的Wagtail管理中,ChildModel现在将显示在标题之上,这对用户来说并不是很直观。有办法改变这种行为吗?
发布于 2021-08-17 16:32:00
对于代码片段,要使用的正确属性名是panels,而不是content_panels。(对于页面,"content_panels“中的”内容“指的是内容选项卡,而不是”促进“选项卡--除非显式添加这些选项卡,否则这些选项卡段没有。)您可能也不想引用Page.content_panels,因为这不是一个页面模型。
由于您没有panels属性,所以它返回到按定义顺序列出字段。一旦您将content_panels更改为panels,您将发现它们按照列出它们的顺序显示。
https://stackoverflow.com/questions/68818681
复制相似问题