Похоже, вы ищете условную агрегацию.
В чистом SQL запрос должен выглядеть следующим образом:
SELECT
A.id,
A.name,
SUM(CASE WHEN B.type = 'Nuter' THEN 1 ELSE 0 END) as Nuter,
SUM(CASE WHEN B.type = 'Spay' THEN 1 ELSE 0 END) as Spay
FROM A
INNER JOIN B ON B.doctor_id = A.id
GROUP BY A.id, A.name
Если между таблицами A и B имеется отношение 1-1, а не 1-N (как показывают ваши данные), можно упростить как:
SELECT
A.id,
A.name,
CASE WHEN B.type = 'Nuter' THEN 1 ELSE 0 END as Nuter,
CASE WHEN B.type = 'Spay' THEN 1 ELSE 0 END as Spay
FROM A
INNER JOIN B ON B.doctor_id = A.id
Попробуйте:
$this->db->select(
"A.id,
A.name,
CASE WHEN B.type = 'Nuter' THEN 1 ELSE 0 END as Nuter,
CASE WHEN B.type = 'Spay' THEN 1 ELSE 0 END as Spay"
);
$this->db->from('A');
$this->db->join('B', 'B.doctor_id = A.id');
$query = $this->db->get();
См. веб-сайт django-plugables , существует немного компонентов CMS для перечисленного Django (и некоторый действительно хороший взгляд).
Существует также этот, который довольно хорош также:
CMS Django Я имел успех с интеграцией django-cms. Просто включайте его в конце своего urlconf, и это не вмешается. (Вы просто потеряете хорошие 404 страницы, когда DEBUG=True
)
Используя различные комбинации процессоров контекста и пользовательских тегов шаблона я смог сделать все, в чем я нуждался, но если Вы действительно потребность вставить содержание в Ваше собственное представление, которое должно быть достаточно легко. (Возможно, звоните cms.views.render_page()
с шаблоном, который испытывает недостаток во всем HTML обертки?)
Если вам не обязательно нужна законченная CMS с фиксированным набором функций, а нужны инструменты поверх Django для создания вашей собственной CMS, я рекомендую изучить FeinCMS. Он следует философии инструментария вместо того, чтобы пытаться все решить и (тоже) часто не может этого сделать.
http://github.com/matthiask/feincms/tree/master
Отказ от ответственности: это мое детище, и результат слишком многих разочаровывающих попыток настроить другую CMS для нужд моих клиентов.
Если вам нужно еще функции, то простой django-page-cms просто проверяет django-блоки ( http://code.google.com/p/django-blocks/ ). Имеет многоязычное меню, плоские страницы и даже простую тележку для покупок !!
На вики-странице Django есть прекрасный обзор приложений Django CMS!