在 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