aboutsummaryrefslogtreecommitdiff
path: root/www/py-django-cms/pkg-message
blob: 449ac076f60d65e9c62eaff735f5a91bcb6ba038 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
[
{ type: install
  message: <<EOM
 IMPORTANT / 

If you're upgrading from a older version of py-django-cms please read the
upgrade instructions at: 

http://docs.django-cms.org/en/latest/upgrade/index.html

The described steps further down are a distilled version of "How to install
django CMS by hand" which is available at:

http://docs.django-cms.org/en/latest/how_to/install.html

The manual gives enough information how to setup py-django-cms for
development use. For production environments please consider to read the
full documentation available at:

http://docs.django-cms.org/en/latest/index.html


 1. Create a new Django project


$ django-admin.py startproject myproject


 2. Edit settings.py


--- Set a SITE_ID by adding the following line:

SITE_ID = 1	# 1 will suffice in most cases

--- Add the next lines to INSTALLED_APPS:

'djangocms_admin_style' 	# must come BEFORE django.contrib.admin
'django.contrib.sites'
'cms'
'menus'
'sekizai'
'treebeard'

--- Configure the LANGUAGES and LANGUAGE_CODE, e.g.:

LANGUAGES = [
    ('en', 'English'),
    ('de', 'German'),
]

LANGUAGE_CODE = 'en'	# For simplicity's sake at this stage it is worth
			# changing the default en-us in that you'll find in
			# the LANGUAGE_CODE setting to en.

--- Add the following lines to MIDDLEWARE_CLASSES:

'cms.middleware.utils.ApphookReloadMiddleware'	# Optional, but useful
'cms.middleware.user.CurrentUserMiddleware'
'cms.middleware.page.CurrentPageMiddleware'
'cms.middleware.toolbar.ToolbarMiddleware'
'cms.middleware.language.LanguageCookieMiddleware'
'django.middleware.locale.LocaleMiddleware'

--- Add MEDIA_URL (where media files will be served) and MEDIA_ROOT (where they
--- will be stored):

MEDIA_URL = "/media/"
MEDIA_ROOT = os.path.join(BASE_DIR, "media")

--- See the Django documentation for guidance on serving media files in
--- production.

--- Add a CMS_TEMPLATES section that will be the project's default template:

CMS_TEMPLATES = [
    ('home.html', 'Home page template'),
]

--- Add the next lines to TEMPLATES['OPTIONS']['context_processors']:

'sekizai.context_processors.sekizai'
'cms.context_processors.cms_settings'

--- Django needs to be know where to look for its templates, so add following
--- line (the appropriate directory will be created in the next step) to the
----TEMPLATES['DIRS'] list:

['templates']

--- In the root of the project, create a templates directory, and in that,
--- home.html, a minimal django CMS template:

{% load cms_tags sekizai_tags %}
<html>
    <head>
        <title>{% page_attribute "page_title" %}</title>
        {% render_block "css" %}
    </head>
    <body>
        {% cms_toolbar %}
        {% placeholder "content" %}
        {% render_block "js" %}
    </body>
</html>

--- Note: See Django's template language documentation for more on how template
--- inheritance works.


 3. Edit urls.py


--- Edit urls.py and add url(r'^', include('cms.urls')) to the urlpatterns
--- list. It should come after other patterns, so that specific URLs for other
--- applications can be detected first.

--- You'll also need to have an import for django.conf.urls.include and
--- configure a media file serving for development purposes:

from django.conf import settings
from django.conf.urls import url, include
from django.conf.urls.static import static

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', include('cms.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)


 4. Setup the relational database backend


--- For testing purpose SQLite can be used and it is configured by default
--- in a new Django project's DATABASES.

--- Refer to Django's DATABASES setting documentation for the appropriate
--- configuration when PostgreSQL or MySQL are used as database backends.


 5. Run migrations to create database tables


--- When a database backend has been choosen and set up properly, run the
--- following command:

$ python manage.py migrate


 6. Create an admin superuser


--- For maintenance purposes it is necessary to create a admin user:

$ python manage.py createsuperuser


 7. Check CMS installation


--- This will check your configuration, your applications, your database and
--- report on any problems:

$ python manage.py cms check

--- When there are no errors continue with the last step.


 8. Start the CMS


--- The django CMS project will now run by issuing:

$ python manage.py runserver

--- The CMS can now be reached http://localhost:8000/ and the admin interface
--- at http://localhost:8000/admin/
EOM
}
]