私は3つの抽象モデルクラスを作成しました:(
SimpleContent
タイトル、サブタイトル、要約のみを保持します。すべてテキストベース)
VisualContent
(画像、リッチテキストフィールド)
Ctalinkitem
(URLを追加するため、ページ、外部、またはドキュメントの可能性があります)
これらのクラスの組み合わせを含む別のクラスを作成して、「モジュールのような」クラスを形成したいと考えています。
たとえばRichContent
、それらの 3 つすべてが含まれます TextLinkContent には SimpleContent と Ctalinkitem が含まれます
このようなクラスを作成しました
class RichContent (SimpleContent, VisualContent, Ctalinkitem):
class Meta:
abstract = True
次に、ページへのリンクを作成しようとします
class LandingPageRichContent(Orderable, RichContent):
page = ParentalKey('LandingPage', related_name='landingpage_richcontent_link')
そして、これをページに追加しますInlinePanel
LandingPage.content_panels = [
FieldPanel('title',classname='full title'),
InlinePanel(LandingPage,'landingpage_richcontent_link', label='Rich Content'),classname='full',heading='Rich Content'),
]
移行を行いましたが、エラーはありません。しかし、 を作成しようとすると、 のLandingPage
フィールドしか表示されませんでしたSimpleContent
。VisualContent
との入力フィールドが表示されませんでしCtalinkitem
た。
の宣言を次のように変更するRichContent
と:
class RichContent (VisualContent, SimpleContent, Ctalinkitem):
からのフィールドしか見えませんVisualContent
。
私は正しいアプローチをしているのだろうか?これを回避する解決策はありますか?