BSD Ports

www/py-django-cms 4.1.4_1 DragonFly

Content management system built with the Django framework

System
DragonFly
Repository
DPorts
Maintainer
[email protected] (as in FreeBSD)
License
BSD3CLAUSE
Categories
python, www
Package size
1923.2 KiB, 16164.1 KiB installed

Description

A free and open source content management system for publishing content on the World Wide Web and intranets. It is based on Django and written in Python.

In the other systems

The newest version among them is 5.1.3, as upstream numbers it.

SystemPortVersionVulnerabilitiesStatusMaintainerLast update
DragonFlywww/py-django-cms4.1.4_1none known-[email protected]-
FreeBSDwww/py-django-cms5.1.3 newestnone known-[email protected]2026-10-03
NetBSDwww/py-django-cms5.1.2none known-[email protected]2026-10-13
HardenedBSDwww/py-django-cms5.1.2no data-[email protected]-
GhostBSDwww/py-django-cms5.1.2no data-[email protected]-

Compare across BSDs

Install

Binary package:

pkg install py311-django-cms

From DPorts:

cd /usr/dports/www/py-django-cms && make install clean

Dependencies

Run dependencies 9

No port depends on this one.

Configuration

No options to configure.

Service scripts
none

Message after installing

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/