一位设计师最近递给我一个我正在为客户建造的网站的设计。它们是很棒的设计,但我真的很想知道我将如何在网站上实现它。
内容可以非常容易地分解为数据块或数据块,我可以为文本输入分配文本区域,为链接按钮分配几个字段等,然后依次将它们呈现给页面。
问题(例如,为什么我不只是拉入Django-CMS等)这些块彼此之间是相互独特的。我可能会为每种块类型构建20种不同的模型。我想建立一个Page模型然后只有一个M2M链接到我的抽象Block类的子类的有序列表,而不是破解预制CMS。我希望我不会失去你。
我不明白我该怎么做。这些问题浮现在脑海中:
是否有一个简单的CMS可以完成所有这些工作?我是在浪费时间试图找出物理学吗?
My Blocks子类在技术上属于不同的类型。我是否需要通用类的泛型来链接它们?是这样,我该怎么做?
如何在内联管理上下文中呈现x个不同的表单? (我希望页面表单中包含下面的块列表)
用户如何在内联控件中指定Block的类型?
我正在考虑在我的模板中点击这个:
{% editable 'unique_id' 'content-type' %}
另一个例子:
{% editable 'home-intro' 'text' %}
然后我可以把它们粘在我想要编辑的模板上,按照我希望它们可编辑的方式,当登录到客户端时会看到“编辑文本”,“编辑链接”,“编辑图像”链接这只是突然出现了正确的领域。
这会让事情变得更加紧张,但布局需要保持稳定(客户端对HTML / CSS一无所知),所以这是IMO中的一种或另一种方法。
答案 0 :(得分:0)
难道你不能像Django CMS插件一样实现你的'Blocks'吗?然后每个页面都是由许多插件构成的。
每个插件都有一个管理表单,可以获取自己的详细信息,然后页面模板可以根据需要呈现插件。
如果你看一下django-cms演示的第一页:
https://www.django-cms.org/en/tour-demo/
你会在(1)中看到一个突出显示的插件块 - 在这种情况下是一个用TinyMCE或类似编辑的格式化文本块。您可以定义自己的插件并将其添加到页面中。
答案 1 :(得分:0)
上个月我发表了一篇关于如何为Jinja构建基本CMS的文章(供审核)。这个模板化的语言并没有像我之前使用过的Django那样费力。 你可以在这里找到它。它使用模板继承来填充内容块。 https://codereview.stackexchange.com/questions/5965/review-request-jinja-cms-for-energiekantoor-nl-on-google-app-engine 或输入Google:Jinja CMS