【发布时间】:2017-10-30 15:43:00
【问题描述】:
我尝试在基于 Wagtail 的项目中找到一个处理非通用页面部分的解决方案。
首先,这是关于某个页面(假设它展示了一些项目案例研究),它有 8 个部分,其中 7 个部分是 100% 通用且可重复使用的。它们的字段在页面模型文件中描述。此页面将被重复使用 10-100 次以上。
同时,这 8 个部分中的一个部分在页面之间完全是 70-100% 非通用的。请看下面的截图来了解一下:
一个名为“解决方案”的部分有 3 个独特的(目前,将来会更多)选项。在我深入研究之前,我一直牢记 StreamField 将其应用于此案例,但这是我的错误。我计划为每个独特的解决方案部分创建一个 StreamField 块,但正如我当时发现的那样,它不支持内联模型(在中间和右侧设计布局的情况下它们可能会帮助我)。我看到我的情况对于 StreamField 功能来说有点复杂。
我的另一种可能的方法是基于假设我可以拥有一个通用模型 project_page.py,其中包含 7 个通用部分并为每个项目填写了独特的内容,然后是一个子模型使用静态“逐字段”声明页面的全部功能创建以覆盖非通用解决方案部分的所有需求。然后从绑定到主项目案例研究页面模型的子模型列表中选择此子模型。同时 project_page.html 模板有空 {% block solution %}{% endblock %} 地方,其中基于子模型的模板 project_page_(project_name).html 继承 project_page.py 模板并将自身插入到该解决方案块中。
还有一件事,我需要通过 URL 访问项目页面有点 sample.com/work/(project_name_slug),在那个主要的 7 个通用部分页面模型之后,它应该使用那个子模型内容而且它不应该单独访问。
也许有人有任何想法来解决它。请分享。
【问题讨论】:
-
有没有人有使用子页面作为父页面一部分的经验?这也可能对我有帮助。
标签: wagtail