2010-07-15 53 views
1

我试图在Django中编写我的第一个CMS。到目前为止,我已经设法使系统启动和运行类似于页面,但更灵活一点。我有两个关于如何接近CMS结构的问题:在Django中编写自定义CMS的帮助

首先,我将存储具有文本内容的HTML标记存储在Postgres数据库中。我见过很多post'ers说这不应该出于安全原因。如果HTML不应该与文本一起存储,那么如何将大胆的输入,段落和图片标签等信息嵌入到内容中?其次,我尝试过检查大量的内容管理系统(主要是PHP)处理目录结构的方式。例如,我可能会在“计算机”类别中出现一个编程页面。在一个静态页面中,我只需创建一个名为'computers'的目录并将我的静态编程页面放在该目录中。如何模拟CMS内的目录结构?我无法在CMS的底部结构上找到任何信息。

感谢您的任何意见....

+1

两个问题应该作为两个单独的问题发布,因为您可能想要接受来自两个独立回答者的每个答案。 – 2010-07-15 18:42:25

回答

2
  1. 保存HTML标签是不是本身就是不安全的。在将它们放入数据库之前,您只需将其擦掉。

  2. 您的页面模型需要包含有关该类别的信息。然后,当显示类别时,您将按类别查询您的页面以获取所有“计算机”页面以在计算机页面上显示。

0

请将此分成两个不同的问题。

  1. 存储HTML是好的。输出时请务必在模板中使用| safe。如果你真的想挑剔,你可以通过使用http://en.wikipedia.org/wiki/Textile_%28markup_language%29http://en.wikipedia.org/wiki/Markdown来避免存储。他们是那些可以解决你所有问题的编辑。

  2. 您可以创建一个类别模型,并且您的所有页面都具有一个到此模型的ForeignKey。其中最灵活的解决方案,我发现的是使用标签,这样一个页面可以有多个标签,因此属于下多个“类别” http://code.google.com/p/django-tagging/

希望这有助于。

+0

谢谢Tudorizo​​r。在Django中编程的'inbetween'信息似乎很缺乏。从来没有任何关于如何构建CMS的指导,然后当有人提出问题时(与我的HTML一样),通常就像“你永远不应该把HTML放入数据库中一样”。这种关闭了中级程序员,并没有帮助初学者改进。 – Boragora 2010-07-19 19:41:25

+0

没有多少文档,因为没有限制。随你便。不要害怕做出错误的选择,特别是如果你做TDD。 – Tudorizer 2010-07-22 04:41:36