Статический текст в динамический текст в шаблонах Django - PullRequest
4 голосов
/ 01 ноября 2010

Ура всем! Я совсем новичок в Django, но я копаюсь уже несколько недель. Я создаю базовый веб-сайт вокруг Django, и я весьма взволнован самой структурой и ее возможностями Мой вопрос может звучать "нуб", и если это так, пожалуйста, не жалуйтесь.

Я разработал ленту новостей, страницы, комментарии, таксономию и кучу других вещей, которые теперь готовы к использованию, но когда я пришел к тому, что мне пришлось применить шаблон к моему сайту, я внезапно подумал что я что то пропустил - статический текст.

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

Я думал об использовании одной модели, которая содержала бы имя html-блока и его содержимое, затем выбирала модели, применимые к определенному представлению, и передавала содержимое в шаблон. Итак, мой вопрос - это правильно? Буду ли я хранить уведомление об авторских правах в нижней части моего сайта в базе данных? Я мог бы использовать один словарь для хранения всех текстовых блоков, доступных для удобного использования в моих шаблонах, но что, если их число станет очень большим? Должен ли я запрашивать только те, которые мне нужны в каждом моем представлении? Или я должен ввести специальный тег шаблона для выполнения такой работы для меня?

Просто чтобы дать вам представление, вот два варианта, которые я имею в виду:

# Option 1
{% load text %}
{% text some-text-label %}

# Option 2 (assuming text was passed in the Context)
{{ text.some-text-label %}

Как именно вы решили эту проблему?

Issue? Да, вы можете сказать мне, что я могу жестко запрограммировать свое уведомление об авторских правах в своих шаблонах, и это нормально, но клиенты, клиенты, клиенты. Они не знают HTML и буквально хотели бы редактировать любую часть веб-сайта из панели администратора (с точки зрения содержания, конечно). Так что да, надеюсь, это объясняет;)

Спасибо за ваши ответы!

Ответы [ 3 ]

3 голосов
/ 01 ноября 2010

Возможно, вы захотите проверить одно из различных сторонних приложений, которые делают подобные вещи - django-flatblocks , django-chunks , generic-flatblocks .

1 голос
/ 01 ноября 2010

Я использовал django-flatblocks (http://github.com/zerok/django-flatblocks) для обработки такого рода информации и управления ею через администратора.

1 голос
/ 01 ноября 2010

Если я правильно понял ваши требования, вы можете выполнить следующие действия:

  1. Сначала вам нужно будет создать файл base.html (или другое имя) и создать различные блоки.
  2. Вы можете создавать теги шаблонов и размещать свою логику для извлечения данных из базы данных (т.е. информации об авторских правах и чего угодно)
  3. Вы можете загрузить тег шаблона в соответствующие блоки, чтобыданные динамически.
  4. Используйте этот шаблон в качестве базового шаблона и наследуйте его во всех других шаблонах.

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

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