Хранение контента со сложной структурой с использованием Django - PullRequest
0 голосов
/ 01 марта 2010

Есть ли рекомендуемые рекомендации по хранению контента, который имеет сложную структуру. Например, предположим, что типичная «статья», которую я пытаюсь подать, может иметь следующую иерархию:

Header #1
   Subheader #1.a)
      Text content
      Image content
      Text Content
   Subheader #1.b)
      Text Content
      Other complex content type, such as syntax highlighted code block
Header #2
...

Я борюсь с тем, как разложить это на соответствующую структуру базы данных, чтобы ее можно было визуализировать с помощью шаблона.

Я понимаю, как можно использовать композицию, чтобы разделить подкомпоненты статьи на части (например, заголовок, подзаголовок, содержимое), где каждый дочерний элемент указывает на своего родителя. Тем не менее, я борюсь с тем, как сохранить направления для объединения всего на уровне контента. Я полагаю, вы можете хранить индекс для каждого блока контента, который определяет порядок, например ::1006

for each header in article
   print header
   for each subheader in header
      print subheader
      for each content block in subheader (ordered by index)
         print content block

Это рекомендуемый метод для решения этой проблемы или есть более чистый подход? Любая помощь будет оценена.

P.S. Я полагаю, что это на самом деле не специфический вопрос для Django, но Django - мой лучший способ реализовать это.

1 Ответ

1 голос
/ 02 марта 2010

Похоже, что общий подход к этой проблеме заключается в использовании фильтров разметки. Примеры включают уценку и текстиль. При таком подходе вы сохраняете всю статью как один большой двоичный объект в базе данных, а затем используете фильтр разметки для преобразования необработанных данных (включая некоторую информацию примитивного макета) в HTML.

...