在Wagtail

时间:2017-10-30 15:43:00

标签: wagtail

我尝试在基于Wagtail的项目中找到处理非通用页面部分的解决方案。

首先,这是关于某个页面(假设它提供了一些项目案例研究),其中有8个部分,其中7个是100%通用且可重复使用。它们的字段在页面模型文件中描述。此页面将重复使用10-100次。

与此同时,这8个部分中的一部分在页面之间完全是70-100%非通用的。请查看下面的屏幕截图以获得想法:

options of Solution section

一个名为Solution的部分有3个独特的(暂时,将来会更多)选项。我记住StreamField在我进入它之前将它应用于这个案例,但这是我的错误。我计划在每个独特的解决方案部分创建一个StreamField块,但是,正如我发现的那样,它不支持内联模型(它们可能在中间和右侧设计布局的情况下帮助我)。我看到我的案例对于StreamField功能来说有点复杂。

我的另一种可能的方法是假设我可以拥有包含7个通用部分的通用模型 project_page.py ,并为每个项目填充唯一内容,然后子模型是正在创建以使用静态“逐个字段”声明页面的全部功能来满足非通用解决方案部分的所有需求。然后从绑定到主项目案例研究页面模型的子模型列表中选择该子模型。同时 project_page.html 模板空 {%block solution%} {%endblock%} ,其中基于子模型的模板 project_page_(project_name).html 继承 project_page.py 模板,并将自身插入该解决方案块。

此处还有一件事我需要通过URL访问项目页面 sample.com/work/(project_name_slug),在主要的7个通用部分页面模型之后,应该使用该子模型内容它不应该单独访问。

也许有人有任何想法可以解决它。请分享。

1 个答案:

答案 0 :(得分:0)

解决方案非常简单,并且基于非泛型继承通用页面模型。为我工作。