Django-CMS установка и первичная настройка

Что такое Djang-CMS

Django-CMS — это система управления контентом, написанная на Python, с использованием фреймворка Django. Она гибкая, настраиваемая, для неё создано много модулей. Помимо этого можно добавлять свои модули.

Установка

  1. Сделаем новый virtualenv

``` bash Запустите в шеле следующие комманды sudo aptitude install python2.6 python-setuptools python-imaging sudo easy_install pip sudo pip install django==1.3.1 django-cms south django-admin.py startproject mycmsproject cd mycmsproject rm settings.py rm urls.py wget https://gist.github.com/raw/1125918/settings.py wget https://gist.github.com/raw/1125918/urls.py mkdir templates cd templates wget https://gist.github.com/raw/1125918/example.html cd .. python manage.py syncdb --all python manage.py migrate --fake python manage.py runserver

### Настройка одного языка для django-cms 2.4.1
Так чтобы небыло префикса 'ru' в урлах
В файл settings.py

``` python
CMS_LANGUAGES = {
    1: [
        {
            'code': 'ru',
            'name': gettext('Russian'),
            # 'fallbacks': [],
            'public': True,
            'hide_untranslated': True,
            'redirect_on_fallback':False,
        },
        ],
        'default': {
        'fallbacks': ['ru'],
        'redirect_on_fallback':True,
        'public': False,
        'hide_untranslated': False,
    }
}

DEFAULT_LANGUAGE = 0
LANGUAGE_CODE = 'ru-RU'
USE_I18N = True
USE_L10N = True

Повторение place_holder элементов на всех страницах

Часто требуется повторение элементов с главной страницы на всех страницах Для этого нужно в расширенных свойствах страницы указать id страницы index (к примеру) И написать что-то вроде этого: {\% show_placeholder "teaser_right_bottom" "index" \%}

Новостной плагин для django-cms

hg clone ssh://hg@bitbucket.org/zerok/cmsplugin-news

Эти новости хорошие, только подправить navigation.py

#from cms.utils.navigation import NavigationNode
from menus.base import NavigationNode

Дальше кастомизировать шаблоны, предварительно скопировав их в папку templates проекта. Возможно вся кастомизация будет заключаться в прописвании {\% extends "base.html" \%} в начало каждого шаблона новостей.

Ещё для использования sqlite easy_install pysqlite

Для моего проекта используются следующие модули, сделано командой pip freeze:

../../bin/pip freeze
Django==1.3.1
PIL==1.1.7
South==0.7.3
cmsplugin-contact==0.9.8
cmsplugin-filer==0.8.0
cmsplugin-filer-gallery==1.0.1.pre-alpha
cmsplugin-news==0.3b
django-appmedia==1.0.1
django-categories==0.8.5
django-classy-tags==0.3.4.1
django-cms==2.2
django-filer==0.8.5
django-filer-gallery==1.0.pre-alpha
django-mptt==0.4.2
django-polymorphic==0.4.2
django-sekizai==0.5
easy-thumbnails==1.0-alpha-20
html5lib==0.90
wsgiref==0.1.2

Если есть уже работающий на сервере проект, а его нужно запустить локально, то создаем виртуальную питоновскую среду, и кропотливо устанавливаем все зависимости. Иначе выйдет боком.

Использование Bootstrap

Я скачиваю с гитхаб zip архив bootstrap. Затем кладу в папку статических файлов папки из master-bootstrap: img, js, less

В папке less создаю файл style.less примерно такого содержания:

@inputHeight: 10px;


@import 'mixins.less';


header {
  color: #000000;
  // background-color: #666666;
  // #gradient > .vertical(#D695B3, #666666);

  // background-image: url(../img/maket_03.png);
  // background-repeat: no-repeat;
  // background-position: center;

  }
body{
    background-color: #666666;
    color: #FEFCFD;
    height: 100%;
}

.my_nav_bar{
  font: bold 16px Arial;


}

article{
  line-height: 25px;
  background: url(../img/stroke.jpg) 100% 50% repeat-y transparent;
  p{
    margin-bottom: 30px;
    margin-right: 40px;
    padding-right: 10px;
  }
}

.my_grad{
  background-color: #666666;
  #gradient > .vertical(#D695B3, #666666);    
}

#myhr {
    border-bottom: 2px solid #D594B2;
    padding-bottom: 10px;
    margin-bottom: 15px;

}

.footer_cups{
  background-image: url(../img/bcups.jpg);
  background-repeat: no-repeat;
  background-position: right;
  height: 100px;
  a {
      color: #FEFCFD;
      text-decoration: underline;
  }
  a:hover {
    color: #000;
  }

}

.thumbnails {
    text-align:center;
}

.thumbnails > li {
    display: inline-block;
    *display:inline; /* ie7 fix */
    float: none; /* this is the part that makes it work */
}

//CUSTOM
.offers img{
  margin: 10px;

}

aside img{
  margin: 10px;

}

.plugin_yandexmap img{
 max-width: none;
}

Дальше компилирую его командой, то как это настраивается можно почитать тут. lessc style.less style.css И соответственно в шаблоне уже ссылаемся на новый style.css

Ещё с главной страницы bootstrap качаем скомпилированный bootstrap.zip, копируем файлы в соответствующие папки


Anshik в разное Пт. 08 Июнь 2012. Tags: django-cms,


© Anshik 2012-2015