Skip to main content

Django tCMS.

Project description

Django tCMS an easy to setup CMS that integrates easily with django-admin.

This project was brought to life by Matías Aguirre while hacking a CMS framework for Mydeco while working on Insophia.


Sites with custom CMS systems usually relies on deployment to bring new pages layouts, and these new pages are created by us, developers. tCMS brings a new mechanism where new pages definitions can be defined using our favorite tool, python. With a set of building blocks pages are created easily once it’s structure is well defined.


  • Use python to define your pages.
  • Django-admin integration.
  • Rich editing using CKEditor (users need to install CKEditor and define setting for tCMS app).
  • Pages i18n, check Localization section for more details.
  • Easy template integration, an easy {{ cms.block_name }} includes named block.


This application only depends on django-admin.


From pypi:

$ pip install django-tcms


$ easy_install django-tcms

or clone from github:

$ git clone git://

and add tCMS to PYTHONPATH:

$ export PYTHONPATH=$PYTHONPATH:$(pwd)/tcms/


$ cd tcms
$ sudo python install


  • Add tCMS to installed applications:

  • Define where your pages are defined:

    TCMS_PAGES = 'tcms_pages'

    The application will import the modules inside and inspect anything that has a PAGE variable defined.

  • Define where images should be uploaded:

    TCMS_IMAGES_UPLOAD_TO = 'cms/image/%Y/%m/%d'

    This setting is used to populate a upload_to Django field parameter, so you can use any supported formats.

  • Define this setting if you have CKEditor installed and want it to be used while editing content:

    TCMS_CKEDITOR_BASE_URL = '/media/js/ckeditor'
  • The application uses Django cache to store content to speed up loading the content when serving the content to users, by default the cache name is tcms, but you can override it by defining:

    TCMS_CACHE_NAME = '...'
  • To enable page localizations, set this setting to True:


    Localization is disabled by default.

  • Define your settings with the extra name/values needed by your templates:



If your site support multiple languages, you will want to create pages on every language.

tCMS uses Django LANGUAGES when searching for supported languages, but allows you to create global language pages, for example if you support en-gb and en-us locales, it’s possible to define a page with locale en and it will be used to server the same content for users requesting for one or other locale.

Example proyect

Check the example to see how it works.

Project details

Release history Release notifications

This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
django-tcms-0.1.11.tar.gz (92.7 kB) Copy SHA256 hash SHA256 Source None Nov 2, 2012

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page