【发布时间】:2015-05-04 23:36:00
【问题描述】:
我创建了 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的字段。
我想知道我是否采用了正确的方法?有什么办法可以解决这个问题吗?
【问题讨论】:
-
谢谢@michaelpri。抱歉,我是第一次在这里发帖,下次我会多加注意的。