Introduction to django CMS

In this article we will:

  • Learn about django CMS
  • Analyze its features
  • Setup an application with django CMS with full installation guidelines

About django CMS

django CMS is an open source enterprise content management system based on the Django framework.

django CMS is voted Best Open Source CMS in 2015. [Announcing the 2015 Winner for Best Open Source CMS]

django CMS’s lightweight core enables integrating it with other software with ease. Developers can integrate existing Django applications with django CMS rapidly. New Django apps also can be developed which may take advantages of django CMS’s publishing and editing features.

User friendly views and intuitive djag and drop features make django CMS suitable for content editors. django CMS’s default multilingual support ensures the existence of multi language versions of all websites, pages and content. [django CMS official website, django CMS wikipedia article]

Features of django CMS Community Edition

  1. Management:
  2. Multi-site capability: Self service
  3. Reusable Design: Self service
  4. Approval Workflow (moderation): Via add-ons or third-party services
  5. Integrated Statistics: Via add-ons or third-party services
  6. Link Management: Self service
  7. Filterable table of contents: Self service
  8. Security:
  9. Granular priviliges: Self service
  10. Distinct Frontend + Backend: Self service
  11. Captcha: Via add-ons or third-party services
  12. SSL: Via add-ons or third-party services
  13. LDAP authentification: Via add-ons or third-party services
  14. Session management: Self service
  15. Response time for security issues: usually within 48h
  16. Sandbox for development: Via add-ons or third-party services
  17. User registration with double opt-in: Via add-ons or third-party services
  18. Controllable backup: Via add-ons or third-party services
  19. Open-Source Databases: MySQL, PostgreSQL, SQLite (+others)
  20. Extensibility:
  21. Extensible: Self service
  22. Customizable WYSIWYG editor: Via add-ons or third-party services
  23. Spell Checker: Via add-ons or third-party services
  24. Versioning, undo changes: Via add-ons or third-party services
  25. Drag & Drop content management: Self service
  26. Scripting API: Self service
  27. Mass upload of images/documents: Via add-ons or third-party services
  28. Automated image editing (e.g. scaling): Via add-ons or third-party services
  29. Multiple use of media content: Via add-ons or third-party services
  30. Free structuring (menus, categories): Self service
  31. Hiding contents for mobile devices: Via add-ons or third-party services
  32. Scheduled publishing/unpublishing: Self service
  33. Full text search: Via add-ons or third-party services
  34. Searchable assets (PDF, meta data): Via add-ons or third-party services
  35. Standards Compliance:
  36. UTF-8 support: Self service
  37. HTML5/CSS3 capable: Self service
  38. Sass/Gulp/Bower: Via add-ons or third-party services
  39. Valid markup: Self service
  40. Frontend (templates) WCAG compliant: Self service
  41. Backend WCAG compliant: Self service
  42. Configurable URLs: Self service
  43. Meta data editable per page: Self service
  44. Standard content repository APIs: Self service
  45. Features:
  46. Tagging: Via add-ons or third-party services
  47. Related Content: Via add-ons or third-party services
  48. Tag cloud: Via add-ons or third-party services
  49. Comments: Via add-ons or third-party services
  50. A/V media: Via add-ons or third-party services
  51. Slideshow: Via add-ons or third-party services
  52. Newsletter and E-Mail Campaign Management: Via add-ons or third-party services
  53. News & Blog: Via add-ons or third-party services
  54. Bulletin board: Via add-ons or third-party services
  55. Print view, PDF Generator: Via add-ons or third-party services
  56. Calendar / events: Via add-ons or third-party services
  57. Configurable user profiles: Via add-ons or third-party services
  58. Forms builder: Via add-ons or third-party services
  59. Social media: Via add-ons or third-party services
  60. Feeds: Via add-ons or third-party services
  61. FAQ: Via add-ons or third-party services
  62. Glossary: Via add-ons or third-party services
  63. Shop function: Via add-ons or third-party services
  64. Polls, surveys: Via add-ons or third-party services
  65. Quiz tool: Via add-ons or third-party services
  66. Sitemap generator: Self service
  67. Design:
  68. Free themes: Via add-ons or third-party services
  69. Commercial themes: Via add-ons or third-party services
  70. Configurable page layout: Self service
  71. individual Design/Themes/…. possible without further knowledge: Self service
  72. Sustainability/Support:
  73. Commercial Offers (services, training, hosting): Via add-ons or third-party services
  74. Manuals and documentation: Self service
  75. Large developer community: Self service
  76. Developer conferences: Self service
  77. Public user/developer platform: Self service

Local Setup Process

Requirements

  • Python 3.6 (Any stable version of Python can be used).

Environment

  • Operating System : Ubuntu 18.04 LTS (64-bit)

Installation

  • Create virtual environment:
    python3 -m venv venv
    
  • Activate virtual environment:
    source venv/bin/activate
    
  • Install required package djangocms-installer:
    pip install djangocms-installer
    
  • List all the installed packages in a separate file called requirements.txt:
    pip freeze>requirements.txt
    
  • Create a new directory called example_project and change current working to example_project:
    mkdir example_project && cd example_project
    
  • Create a new Django project called example_site
    djangocms example_site
    
    This command will:
    • Create a Django project
    • Install django CMS and its core plugins
    • Create and populate the database
    • Install default templates
  • Folder structure after successful installation of django-cms:
    .
    

├── example_project │   └── example_site │   ├── example_site │   │   ├── init.py │   │   ├── settings.py │   │   ├── static │   │   ├── templates │   │   │   ├── base.html │   │   │   ├── fullwidth.html │   │   │   ├── sidebar_left.html │   │   │   └── sidebar_right.html │   │   ├── urls.py │   │   └── wsgi.py │   ├── manage.py │   ├── media │   ├── project.db │   ├── requirements.txt │   └── static └── requirements.txt

- Run the server:

python manage.py runserver

Visiting [127.0.0.1:8000](http://127.0.0.1:8000/) will redirect to login page:

![alt Login page](/blog/images/django_CMS_login_page.png?style=center)

Default credentials to login into admin panel:

User: admin Password: admin

After login it will open the editor page:

![alt Login page](/blog/images/django_cms_editor.png?style=center)


### Reference

- [django CMS official website](https://www.django-cms.org/en/)
- [django CMS Github repository](https://github.com/divio/django-cms)
- [django CMS features](https://www.django-cms.org/en/features/list/)
- [Announcing the 2015 Winner for Best Open Source CMS](https://www.cmscritic.com/announcing-the-2015-winner-for-best-open-source-cms/)
- [Installing django CMS](http://docs.django-cms.org/en/latest/introduction/01-install.html)
- [django CMS Installer usage](https://djangocms-installer.readthedocs.io/en/latest/readme.html#usage)
- [django CMS docs](http://docs.django-cms.org/en/latest/)
- [CMS comparisons](https://djangopackages.org/grids/g/cms/)
- [django CMS wikipedia article](https://en.wikipedia.org/wiki/Django_CMS)

Advertisement

Citation

Click to select citation style

Shovon, A. R. (2020, April 10). Introduction to django CMS. Ahmedur Rahman Shovon. Retrieved September 15, 2025, from https://arshovon.com/blog/introduction-to-django-cms/

Shovon, Ahmedur Rahman. “Introduction to django CMS.” Ahmedur Rahman Shovon, 10 Apr. 2020. Web. 15 Sep. 2025. https://arshovon.com/blog/introduction-to-django-cms/.

@misc{shovon_2020_introduction,
    author = "Shovon, Ahmedur Rahman",
    title = "Introduction to django CMS",
    year = "2020",
    url = "https://arshovon.com/blog/introduction-to-django-cms/",
    note = "[Online]"
}
Related contents in this website
Introduction to django CMS
Next post

Counting Sort