Sparrowではあらかじめ用意された便利なブロックがありますが、それを自分好みにカスタマイズしたり、新規のブロックを実装してエディタに追加することができます。
このページでは、編集画面で使用するブロックのカスタマイズ方法について解説します。
ブロックをカスタマイズしたい場合は、ページのカスタムモデルを作り、そのモデルのブロックフィールドを上書きします。
ページのカスタムモデルの作り方は以下のページで解説しています。
以下の例は、 CustomHomeFixed
という固定ページ用のカスタムモデルを作り、bodyフィールドを上書きしている例です。
sparrowoverrides/models.py
class MyBodyBlock(core_blocks.StreamBlock):
"""カスタムブロック"""
# ここにカスタム内容を実装します。
pass
class CustomHomeFixed(AbstractHomeFixed):
"""ページのカスタムモデル"""
# bodyフィールドの上書き
body = StreamField(MyBodyBlock(), verbose_name="本文")
class Meta:
abstract = True
MyBodyBlock
という本文用のブロックを作り、これをCustomHomeFixedのbodyフィールドとして使用しています。ブロックの作り方はWagtailの実装方法をそのまま使用できます。