python - 是否可以在 Wagtail 管理员中重新排序 content_panels?
问题描述
我正在创建一个 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现在会显示在标题上方,这对用户来说不是很直观。有没有办法改变这种行为?
解决方案
对于片段,要使用的正确属性名称是panels
,而不是content_panels
。(对于页面,“content_panels”中的“内容”指的是内容选项卡而不是“推广”选项卡 - 片段没有这些选项卡,除非您明确添加它们。)您可能也不想引用Page.content_panels
,因为这不是页面模型。
由于您没有panels
属性,因此它只能按定义顺序列出字段。更改content_panels
为 后panels
,您会发现它们按照您列出的顺序显示。
推荐阅读
- sql - 从选择创建表 - 任何刷新或自动更新的选项?
- list - 如何通过使用某种带有谓词的过滤器来创建对象列表
- php - Laravel 6:注册时如何将复选框值传递到数据库用户表中
- python - 对 pyinstaller 使用 --onefile 不会创建单个可执行文件,而是会不断创建目录
- r - 将列表列表转换为数据框
- docker - 运行时备份 docker 卷
- go - Go/goland 无法读取存储库
- c# - 具有动态字段名称的 OrderBy 上的 .NET Core 3 InvalidOperationException
- function - PySpark 中是否有任何功能可以提供“一天中的分钟”?
- encryption - 使用 gstreamer 如何生成加密的 hls 流