2017-08-03 19 views
2

一般的なサイト要素を適切な場所に整理したいと思います。たとえば、サイトフッター要素。私が知る限り、サイトの設定は良いアプローチです。私は注文可能なモデルを追加することを決めてから、一連の反復可能なリストを作成できるようになるまで、すべてがうまくいっていましたが、属性 "テキスト"、 "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に変更するようアドバイスします。最後に、私はここで何が悪いのでしょうか?ありがとう。

答えて

1

UPDATE 「KeyError例外で/管理/設定/ DS/sitefootersettings/2/ 'blog_menu_items'

を得る。最近、私はこのスレッドを発見した。

https://github.com/wagtail/wagtail/issues/3435

最初の投稿には、対処方法が非常に明確なコード例が含まれています。それは私のために働いた

関連する問題