2017-12-14 5 views
0

wagtailでは、すべてのページモデルに同じフィールドを追加する良い方法はありますか?私は、SEOデータフィールドや、ほぼすべてのページが実装したいメタ情報の検索などについて考えています。私はWagtailを使ってこれを行う良い方法を見つけることができないようです。すべてのページのWagtailフィールド/データ?

答えて

2

ミックスインの抽象クラス(WagtailのPageではなく、このベースクラスから継承しています)を使用できます(mixinとWagtailの両方から継承しています。Page)。

抽象クラスの使用はおそらく最も簡単ですが、すべてのページは常に基本クラスで定義されたすべてのフィールドを継承します。 一方、mixinを使用すると、複数のmixin(SEOMixin、ThumbnailMixinなど)を持ち、必要に応じて組み合わせることができるので、柔軟性が高くなります。

+0

はい。私はそのアプローチについて考えました。既存のプロジェクトに少し激しいと思われる。しかし、ひどい考えではない。 –

+0

はい、ミックスインを使用して私はテストを持っている最良のアプローチです。ありがとうLoïcTeixeira。あなたはPythonのMixinsがあまりにも貧弱に文書化されているので、ちょっと混乱していました。 LoïcTeixeiraのSEOMixinクラスは、Djangoの世界で抽象クラスのように見えますが、実際はMixinとして機能します。これは、MixinをDjangoモデルで使用するための優れたリソースです。https://stackoverflow.com/questions/3254436/django-model-mixins-inherit-from-models-model-or-from-object –

+1

実際、 Djangoとのミックスインは純粋なPythonミックスインと少し異なります。それは素晴らしいリンクです。将来私がDjangoのミックスインについて話すときには、それを必ず含めていきます。ありがとう。 –

関連する問題