可编辑的非结构化页面

时间:2012-03-14 10:18:48

标签: django database-design mongodb

我正在为一组可能有相当多非结构化页面的网站构建一个小型网站框架 - 这意味着他们有:

  • 每页布局略有不同
  • 很多一次性文字
  • 没有/很少从模型中生成内容

我想允许客户通过我的管理界面编辑这些页面的内容(我正在使用Django进行此项目),但要求它们不会暴露给页面HTML并且只能编辑我指定为字段的页面部分;例如:

  • 标题
  • 几个文本内容块
  • 可能是某些预定义图像位置块
  • 需要嵌入的PDF文件

这些字段在不同页面之间存在显着差异。

开发人员会指定布局以及这些页面所需的字段,因此无需为此动态生成。

我到目前为止的“最佳”想法是,一旦用户编辑了这些内容块并将其存储在关系数据库的“页面”表/模型中,或者只是抛出MongoDB或类似的。

从概念上讲,您将如何实现此类页面?如上所述,我正在使用Django,因此欢迎任何特定于Django的实现建议,但一般的高级想法也会很棒。

2 个答案:

答案 0 :(得分:2)

我会实现一个ContentBlock模型,它有.kind(标题,文字,图片,pdf)和.data,它会包含内容(如果是文本)或路径上传的pdf / image / etc.据推测,你可以使用定义的相应块对页面进行硬编码 - 我只使用硬编码的slugs,例如'home-title', 'home-intro', 'about-title', 'about-text', 'about-right-photo'等。

我建议使用Django的管理界面。它更适合编辑同质的非商业逻辑模型。我只是添加一个编辑视图,为块提供相应的表单字段 - html编辑器,文件上传等。可以在django管理员中执行此操作,但根据我的经验,这不值得麻烦 - 加上,如果您可以使用与网站其余部分相同的基本模板,使用自己的编辑视图,IMO可以提供更好的用户体验。

答案 1 :(得分:1)

以下是一些适合您的应用程序:

django-frontendadmin一起,它非常酷。