在 Django Wagtail BaseSettings 中添加 MultiFieldPanel

Posted

技术标签:

【中文标题】在 Django Wagtail BaseSettings 中添加 MultiFieldPanel【英文标题】:Add a MultiFieldPanel in Django Wagtail BaseSettings 【发布时间】:2016-11-07 12:19:29 【问题描述】:

我正在添加一组可由我的用户在 Wagtail Admin 中填写的字段。一切正常,但我想在面板组中组织设置,但它不起作用。有人可以在下面查看我的代码,看看我这样做是否正确吗?

...
from wagtail.contrib.settings.models import BaseSetting, register_setting
from wagtail.wagtailadmin.edit_handlers import MultiFieldPanel, FieldPanel


@register_setting
class SiteSettings(BaseSetting):
    facebook = models.URLField(blank=True, help_text='Your Facebook page URL')
    instagram = models.CharField(max_length=255, blank=True, help_text='Your Instagram username, without the @')
    youtube = models.URLField(blank=True, help_text='Your YouTube channel or user account URL')
    company_name = models.CharField(blank=True, max_length=250, help_text='Enter your company name how you would like it to appear on the site')

    content_panels = [
        MultiFieldPanel(
            [
                FieldPanel('facebook'),
                FieldPanel('instagram'),
                FieldPanel('youtube'),
            ],
            heading="Social Media Profiles",
            classname="collapsible collapsed"
        ),
        MultiFieldPanel(
            [
                FieldPanel('company_name'),
            ],
            heading="Company Info",
            classname="collapsible collapsed"
        ),
    ]

【问题讨论】:

【参考方案1】:

根据http://docs.wagtail.io/en/stable/reference/contrib/settings.html#edit-handlers,您应该使用panels,而不是content_panels

(Wagtail 页面上使用的名称 content_panels 来自于它影响“内容”选项卡,而不是“推广”或“设置”。对于设置和 sn-ps 模块,有默认情况下没有标签 - 所以它被简单地称为panels。)

【讨论】:

工作就像一个魅力!谢谢!

以上是关于在 Django Wagtail BaseSettings 中添加 MultiFieldPanel的主要内容,如果未能解决你的问题,请参考以下文章

Wagtail、CORS 和 Django-Cors-Headers。如何启用 CORS 以便 AXIOS 可以访问端点

在 Django Wagtail BaseSettings 中添加 MultiFieldPanel

Django Wagtail - 如何设置日期格式?

Wagtail Cms是否支持Google登录和用户登录添加会话

升级 Wagtail 后如何解决 fts5 错误

鹡鸰 2.0 安装错误