Да, кстати. Информации по этой теме достаточно мало, заблуждений и мифов достаточно много.
Окей, по порядку.
дикая админка
Ну админка там совершенно стандартная: django.contrib.admin. Есть собственное оформление. Это, конечно, дело вкуса, но на мой взгляд аккуратнее и современнее, чем дефолтное. Есть возможность открыть админку в боковой панели из публичной части сайта. Но никто не мешает использовать её и традиционным образом. Зато есть возможность инлайнового редактирования. Выглядит это примерно так:
с ап-хуками
это когда надо прикрепить приложение к определённой странице в общей структуре страниц. Но во-первых, никто не заставляет этим пользоваться. Стандартная схема с ручным подключением урлов работает так же, как и без cms. Только подключение приложений в урлах надо ставить перед подключением урлов cms. Точно так же, как при использовании flatpages через middleware.
А во-вторых, это настолько удобно, что раз привыкнув, иначе делать и не захочется. Сам по себе хук пишется в несколько строк.
писать на джанге удобней чем виджеты
странное заявление. Под виджетами имелись в виду наверное плагины? Так вот они тоже пишутся на джанге. Принципы написания очень похожи на самые обычные вьюхи. Вот пример:
from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool
from django.utils.translation import ugettext as _
from .models import Brand, BrandsPluginConfig
class BrandsPlugin(CMSPluginBase):
module = _("Adler-M")
name = _("Brands Plugin")
render_template = "brands/brands_plugin.html"
model = BrandsPluginConfig
def render(self, context, instance, placeholder):
context.update({'brands': Brand.objects.all()})
context.update({'instance': instance})
return context
plugin_pool.register_plugin(BrandsPlugin)
это просто кусок кода, взятый из рабочего проекта. Это плагин, выводящий список элементов из модели Brand. Он устанавливается через визуальный редактор структуры страницы. Вот так это выглядит: https://yadi.sk/i/UflTHPw_cNYSu . Плагин этот можно размещать в разных местах на сайте, и в каждом месте ему можно задавать собственные настройки, для хранения которых плагину и указывается собственная модель. Кстати, можно не указывать, если настройки не нужны, и тем самым сэкономить один запрос к БД.
я с ней больше потом решил не встречаться
судя по вашему блогу это было при версии 2.4. Понимаю. Тогда она ещё была маленькая и незрелая. Сейчас лучше.