Помогите с написанием кастомной CMS в Django - PullRequest
1 голос
/ 15 июля 2010

Я пытаюсь написать свою первую CMS в Django.До сих пор мне удалось настроить и запустить систему, аналогичную плоским страницам, но немного более гибкую.У меня есть два вопроса о том, как я подхожу к структуре CMS:

Во-первых, я храню теги HTML с текстовым содержимым в базе данных Postgres.Я видел много постеров, которые говорили, что это не следует делать из соображений безопасности.Если HTML не должен храниться вместе с текстом, то как вы встраиваете в контент такую ​​информацию, как полужирный шрифт, теги абзацев и изображений?

Во-вторых, я попытался проверить многочисленные системы управления контентом (в основном PHP) оони имеют дело со структурами каталогов.Например, у меня может быть страница программирования, которая появляется в категории «компьютеры».На статической странице я бы просто создал каталог под названием «компьютеры» и поместил бы мою страницу статического программирования в этот каталог.Как мне моделировать структуры каталогов внутри CMS?Я нигде не могу найти информацию о нижних структурах CMS.

Спасибо за любой совет ....

Ответы [ 2 ]

2 голосов
/ 15 июля 2010
  1. Хранение тегов HTML небезопасно. Вам просто нужно очистить их от опасного содержимого, прежде чем помещать их в базу данных.

  2. Ваша модель страницы должна будет содержать информацию о категории. Затем при отображении категории вы будете запрашивать ваши страницы по категориям, чтобы все «компьютерные» страницы отображались на странице компьютера.

0 голосов
/ 18 июля 2010

В будущем разбейте это на 2 отдельных вопроса.

  1. Хранение HTML - это хорошо.Когда вы выводите данные, обязательно используйте | safe в шаблонах.Если вы действительно хотите быть разборчивыми, вы можете избежать хранения, используя http://en.wikipedia.org/wiki/Textile_%28markup_language%29 или http://en.wikipedia.org/wiki/Markdown. Это редакторы wysiwig, которые решат все ваши проблемы.

  2. Вы можете создать модель категории и все ваши страницы с иностранным ключом для этой модели.Одним из наиболее гибких решений, которые я нашел, было использование тегов, чтобы страница могла иметь несколько тегов и, таким образом, попадать в несколько «категорий» http://code.google.com/p/django-tagging/

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...