我想在适当的地方组织常见的网站元素。例如,站点页脚元素。据我所知,网站设置是一个很好的方法。一切都很顺利,直到我决定在那里添加Orderable模型才能构建一种可迭代列表,其中一些项目包含属性“text”,“URL link”。我遇到了麻烦,平常的方式我习惯在页面模型中应用并没有帮助我。这是代码:
@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会抛出错误并建议将其更改为外键。最后我明白了 “/ admin / settings / ds / sitefootersettings / 2 /中的KeyError 'blog_menu_items'
这里有什么问题?感谢。
答案 0 :(得分:1)