首页 > 解决方案 > 将详细名称(或类似属性)应用于绑定到 ParentalKey 的 Wagtail 表单字段

问题描述

有谁知道我如何将左侧字段中的字符串“登陆页面组”更新为“翻译组”?

我正在为 Page 模型开发 Wagtail 管理页面。我们允许我们的营销团队使用“登陆页面组”翻译页面并将它们关联在一起。在内部,我们需要维护“Landing page group”这个名称,但我们的用户测试表明,如果我们将名称简化为“Translation group”,用户可能更容易理解它的用途。

我已经对允许用户添加新组名的字段进行了更改。添加一个元类verbose_name很容易。但是,我没有那么简单的时间重命名主要选择字段。我包括有问题的管理面板的屏幕截图,下面的一些代码可能会提供一些见解。

我们正在使用 Django 2.0.8 和 Wagtail 2.5.1。

区域设置广告 hreflang 组

class LandingPageGroup(ClusterableModel):

    class Meta:
        ordering = ['name']

    name = models.CharField('Landing Page Group name', max_length=255)

    api_fields = [
        APIField('name'),
    ]

    def __str__(self):
        return self.name

class LandingPageBaseForm(WagtailAdminPageForm):
    new_landing_page_group = forms.CharField(required=False, label='New translation group')

class LandingPageBase(Page):
    base_form_class = LandingPageBaseForm
    landing_page_group = ParentalKey(
        'home.LandingPageGroup',
        on_delete=models.PROTECT,
        blank=True,
        null=True,
    )
    content_panels = [
        MultiFieldPanel(
            heading='Locale and Hreflang Group',
            [
                FieldRowPanel(
                    [
                        FieldPanel('landing_page_group', widget=forms.Select),
                        FieldPanel('new_landing_page_group'),
                    ],
                    help_text='Choose an existing landing page group OR create a new one'
                ),
            ],
        ),
    ]

标签: wagtailwagtail-admin

解决方案


事实证明,您可以将verbose_name属性应用于 ParentalKey。

landing_page_group = ParentalKey(
    'home.LandingPageGroup',
    on_delete=models.PROTECT,
    blank=True,
    null=True,
    verbose_name='Translation group', # <---
) 

我可以发誓尝试过这个,但它按预期工作。


推荐阅读