一般的なサイト要素を適切な場所に整理したいと思います。たとえば、サイトフッター要素。私が知る限り、サイトの設定は良いアプローチです。私は注文可能なモデルを追加することを決めてから、一連の反復可能なリストを作成できるようになるまで、すべてがうまくいっていましたが、属性 "テキスト"、 "URLリンク"を含んでいます。私はトラブルに遭遇しました。私がページモデルに適用するのに使用した通常の方法は私を助けませんでした。コードは次のとおりです。Wagtail 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はエラーをスローし、それをForeign keyに変更するようアドバイスします。最後に、私はここで何が悪いのでしょうか?ありがとう。