django-siteblocks
Приложение для Django, позволяющее определять статические и динамические блоки для их последующего отображения на страницах.
Репозиторий: https://github.com/idlesign/django-siteblocks
Автор:
Игорь Стариков
Позволяет организовать данные в статические или динамические блоки, которые можно отображать в произвольных местах ваших страниц. Такие блоки адресуются в шаблонах по их псевдонимам.
Статические блоки
Статические блоки можно задать в административном интерфейсе Django и привязать к определённым URL. Таким образом, для разных URL может быть показано разное содержимое блока.
Динамические блоки
Содержимое таких блоков зависит от результата выполнения вашей функции. Этот подход позволяет задать сложную логику построения содержимого блока.
В качестве примера, давайте разберём создание блока, возвращающего случайно выбранную цитату из Пратчетта:
Отрисовка блока
Используйте шаблонный тег
За более подробным описанием и примерами обратитесь к документации (англ.).
Смотрите также:
* Анонс django-siteblocks 0.3.0
Статические блоки
Статические блоки можно задать в административном интерфейсе Django и привязать к определённым URL. Таким образом, для разных URL может быть показано разное содержимое блока.
Динамические блоки
Содержимое таких блоков зависит от результата выполнения вашей функции. Этот подход позволяет задать сложную логику построения содержимого блока.
В качестве примера, давайте разберём создание блока, возвращающего случайно выбранную цитату из Пратчетта:
from random import choice
from siteblocks.siteblocksapp import register_dynamic_block
def get_quote(**kwargs):
"""Функция вернёт строку, которая должна быть
использована в качестве содержимого блока.
"""
quotes = [
'Early to rise, early to bed, makes a man healthy, wealthy and dead.',
'The duke had a mind that ticked like a clock and, like a clock, it regularly went cuckoo.',
'Speak softly and employ a huge man with a crowbar.',
]
return choice(quotes)
# Регистрируем динамический блок.
register_dynamic_block('quote', get_quote)
Отрисовка блока
Используйте шаблонный тег
siteblocks
, чтобы отрисовать блок в желаемом месте страницы. {% load siteblocks %}
<div class="quote">
{% siteblock "quote" %}
< /div>
За более подробным описанием и примерами обратитесь к документации (англ.).
Смотрите также:
* Анонс django-siteblocks 0.3.0