2
我想在适当的位置组织常见网站元素。例如,站点页脚元素。据我所知网站设置是一个很好的方法。一切都还好,直到我决定在那里添加Orderable模型,以便能够构建一种包含属性“文本”,“URL链接”的可迭代列表。我遇到了一个麻烦,通常的方式我用在页面模型申请没有帮助我。这里是代码:将可订购型号添加到W CMS CMS的自定义设置中
@register_setting
class SiteFooterSettings(BaseSetting):
class Meta:
verbose_name = _('Footer Settings')
blog_title = models.CharField(_('Title'), max_length=50, null=True, blank=True)
blog_article_button_text = models.CharField(_('Article Button Text'), max_length=50, null=True, blank=True)
panels = [
MultiFieldPanel(
heading=_('Our Blog'),
children=[
FieldPanel('blog_title'),
FieldPanel('blog_article_button_text'),
],
classname='collapsible'
),
MultiFieldPanel(
heading=_('Blog Menu Items'),
children=[
InlinePanel('blog_menu_items', label=_('Blog Menu Item')),
],
classname='collapsible'
),
]
class SettingsBlogMenu(Orderable):
page = ForeignKey('ds.SiteFooterSettings', related_name='blog_menu_items')
blog_menu_item = models.CharField(_('Item'), max_length=70, null=True, blank=True)
blog_menu_item_url = models.CharField(_('URL'), max_length=70, null=True, blank=True)
panels = [
FieldPanel('blog_menu_item'),
FieldPanel('blog_menu_item_url')
]
通常我使用ParentalKey绑定这样的列表到一个页面。虽然在迁移过程中Django抛出一个错误,并建议将其更改为外键。最后我得到 “KeyError异常在/管理/设置/ DS/sitefootersettings/2/ 'blog_menu_items'
有什么不对吗?谢谢。