我想更改管理界面中某些Page
字段的帮助文本和标签。看来通常FieldPanel
会从模型字段中拾取标签和帮助文本,但是由于我想更改Page
模型(title
和{ {1}},特别是),我无法在字段本身上设置search_description
和verbose_name
我尝试将help_text
和heading
关键字参数传递给help_text
,但是我仍然在管理界面中看到默认标签和帮助文本。
FieldPanel
答案 0 :(得分:2)
有一种方法可以逐个字段覆盖默认的help_text
和标签(称为verbose_name
)。
MyPage._meta.get_field("title").help_text = "Help me Obi-Wan, you're my only help_text"
MyPage._meta.get_field("title").verbose_name = "Jedi Labelling"
有这种方法。然后还有丹·斯温(Dan Swain)在回答中很好地介绍了MultiFieldPanel的heading
。
如果所有方法都不奏效,总会有the HelpPanel
。 http://docs.wagtail.io/en/v2.6.1/reference/pages/panels.html#helppanel
如果您喜欢从视频中学习,我也围绕这个主题创建了a YouTube video。
希望这会有所帮助!
答案 1 :(得分:0)
我不知道将帮助文本直接添加到单个字段的简单方法,但是您可以将这些字段包装在MultiFieldPanel
中,然后放在标题上: / p>
class MyPage(Page):
content_panels = [
MultiFieldPanel([
FieldPanel('title', heading='Name', classname='full'),
FieldPanel('search_description', heading='Description',
classname='full',
help_text='Description used in indices and search results')
], heading="your help text")
]
在wagtail.core.models.py
中,您将看到:
from django.utils.translation import ugettext_lazy as _
class Page(AbstractPage, index.Indexed, ClusterableModel, metaclass=PageBase):
title = models.CharField(
verbose_name=_('title'),
max_length=255,
help_text=_("The page title as you'd like it to be seen by the public")
)
由于Page
不是抽象类,因此即使尝试重新定义Page
,也要在自己基于title
的类中can't override的字段。另外,请注意先导入ugettext_lazy as _
,然后再导入_('title')
声明中的verbose_name
。 This answer解释说,这段代码正在获取title
的{{1}}的翻译版本。
答案 2 :(得分:0)
@KalobTaulien在Wagtail Slack中的建议似乎可以解决问题:
class MyPage(Page):
pass
MyPage._meta.get_field('title').verbose_name = 'name'
MyPage._meta.get_field('search_description').help_text = 'Description used in indices and search results'