

{"id":72169,"date":"2019-11-05T14:51:37","date_gmt":"2019-11-05T09:21:37","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=72169"},"modified":"2021-06-21T12:19:15","modified_gmt":"2021-06-21T06:49:15","slug":"django-cms","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/django-cms\/","title":{"rendered":"Django CMS Tutorial &#8211; Complete Installation Process &amp; Benefits"},"content":{"rendered":"<div class='__iawmlf-post-loop-links' style='display:none;' data-iawmlf-post-links='[{&quot;id&quot;:1346,&quot;href&quot;:&quot;https:\\\/\\\/marketplace.django-cms.org\\\/en\\\/addons&quot;,&quot;archived_href&quot;:&quot;http:\\\/\\\/web-wp.archive.org\\\/web\\\/20211201123505\\\/https:\\\/\\\/marketplace.django-cms.org\\\/en\\\/addons\\\/&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2025-12-09 05:06:07&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2025-12-26 07:26:08&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-01-09 18:39:07&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-01-23 06:08:28&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-01-28 16:06:40&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-02-09 01:39:27&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-02-12 06:28:53&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-02-16 07:16:23&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-02-20 04:47:31&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-02-25 10:26:48&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-03-03 05:09:35&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-03-09 01:29:57&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-03-19 03:38:27&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-03-29 07:28:28&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-04-02 01:46:38&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-04-08 11:53:26&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-04-14 03:21:48&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-04-17 20:15:04&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-05-06 09:20:09&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-05-16 02:22:54&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-05-19 18:38:38&quot;,&quot;http_code&quot;:503}],&quot;broken&quot;:true,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-05-19 18:38:38&quot;,&quot;http_code&quot;:503},&quot;process&quot;:&quot;done&quot;}]'><\/div>\n<p>Django is an amazing web-framework in itself. There are various packages and frameworks built around Django to provide more functionality. In this article, we are going to learn about one such software &#8211; The Django CMS. It is a framework specializing in content management.<\/p>\n<p>There are various benefits of using Django CMS over Django. A CMS is a system that lets users manage various types of content. We will discuss them one by one. In the last section of this tutorial, we will install Django CMS ourselves. So, let\u2019s get started.<\/p>\n<h4>What is a CMS?<\/h4>\n<p>A CMS is a Content Management System. This system lets its user add, modify and delete the content as per user\u2019s will. The content we are talking about is digital content. It includes text, images. This article is a perfect example of that kind of content.<\/p>\n<p>The CMS provides an interface that can be easily used by clients to maintain their websites. The client need not be familiar with backend technologies. A CMS, in short, provides the client-user an interface to easily add, modify and remove the content. Also, it provides the tools to publish the content.<\/p>\n<h4>Django CMS Tutorial<\/h4>\n<p>Before starting, let&#8217;s first see the reasons to choose the Django CMS.<\/p>\n<h4>Why Django CMS?<\/h4>\n<p>It is number 1 in the industry right now. Django CMS is an Enterprise-grade Management System for content. It was awarded the Best Open Source CMS of 2015. Django utilizes all its features. That itself is very powerful. The extra functionality you get for publishing and content management is awesome.<\/p>\n<p>Django CMS is trusted by many popular organizations. You will be surprised but it is used by NASA, National Geographic, etc.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/companies-using-django-CMS.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-72296\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/companies-using-django-CMS.png\" alt=\"companies using django CMS\" width=\"1234\" height=\"520\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/companies-using-django-CMS.png 1234w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/companies-using-django-CMS-150x63.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/companies-using-django-CMS-300x126.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/companies-using-django-CMS-768x324.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/companies-using-django-CMS-1024x432.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/companies-using-django-CMS-520x219.png 520w\" sizes=\"auto, (max-width: 1234px) 100vw, 1234px\" \/><\/a><\/p>\n<p>You will be astonished by how much features Django CMS can add to your website. There are many plugins that you can add on top of Django CMS.<\/p>\n<p>Django CMS boasts an awesome marketplace for plugins. Currently, Django-CMS has released its latest version 3.7. We will be working with version 3.6 which is stable at the time.<\/p>\n<p>Okay, now let\u2019s start installing the project. We will discuss various plugins along with the installation.<\/p>\n<h4>Installing Django CMS<\/h4>\n<p>Now, we will make a new virtual environment for this purpose. Execute this command:<\/p>\n<p><em><strong>$ virtualenv dataflairdjangocms<\/strong><\/em><\/p>\n<p>Then move into that folder and activate the environment.<\/p>\n<p><em><strong>$ .\\dataflairdjangocms\\Scripts\\activate.bat &amp;&amp; cd dataflairdjangocms\\<\/strong><\/em><\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Making-a-virtual-environment.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-72184\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Making-a-virtual-environment.png\" alt=\"Making a virtual environment - Django CMS\" width=\"1920\" height=\"972\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Making-a-virtual-environment.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Making-a-virtual-environment-150x76.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Making-a-virtual-environment-300x152.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Making-a-virtual-environment-768x389.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Making-a-virtual-environment-1024x518.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Making-a-virtual-environment-520x263.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p>Now, execute this command:<\/p>\n<p><em><strong>$ pip install django-cms<\/strong><\/em><\/p>\n<p>This command will install Django and other important packages you would require.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Installing-Django-CMS.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-72185\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Installing-Django-CMS.png\" alt=\"Installing Django CMS \" width=\"1920\" height=\"972\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Installing-Django-CMS.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Installing-Django-CMS-150x76.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Installing-Django-CMS-300x152.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Installing-Django-CMS-768x389.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Installing-Django-CMS-1024x518.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Installing-Django-CMS-520x263.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p>As you can see, we will get these packages installed in our environment.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Packages-installed.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-72186\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Packages-installed.png\" alt=\"Packages installed - Django CMS\" width=\"876\" height=\"363\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Packages-installed.png 876w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Packages-installed-150x62.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Packages-installed-300x124.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Packages-installed-768x318.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Packages-installed-520x215.png 520w\" sizes=\"auto, (max-width: 876px) 100vw, 876px\" \/><\/a><\/p>\n<p>We have a lot of packages here. Now, our traditional Django Codes.<\/p>\n<p>Execute this command in the command line.<\/p>\n<p><em><strong>$ django-admin startproject dataflaircms<\/strong><\/em><\/p>\n<p>Now, there will be a lot of editing and work involved. We will also look at some of the code we are adding here.<\/p>\n<h4>Installing Applications<\/h4>\n<p>We need to install some basic applications in our project. These apps are required for Django-cms to work in our project.<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">INSTALLED_APPS = [\r\n# At the top before dajngo.contrib.admin\r\n    'djangocms_admin_style',\r\n#\r\n# Other default applications\r\n#\r\n# DataFlair # Django CMS # At last also install these applications\r\n    'django.contrib.sites',\r\n    'cms',\r\n    'menus',\r\n    'treebeard',]\r\n# Site_id Setup\r\nSITE_ID = 1\r\n\r\n<\/pre>\n<p style=\"text-align: center;\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Installing-Applications-.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-72187\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Installing-Applications-.png\" alt=\"Installing Applications - Django CMS Tutorial\" width=\"1920\" height=\"976\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Installing-Applications-.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Installing-Applications--150x76.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Installing-Applications--300x153.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Installing-Applications--768x390.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Installing-Applications--1024x521.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Installing-Applications--520x264.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p>The Django CMS needs <strong>django.contrib.sites<\/strong> package. To use that we need another variable <strong>SITE_ID<\/strong>. Keeping it 1 will be beneficial for us.<\/p>\n<p>Apps like <strong>cms<\/strong> and <strong>menus<\/strong> are core Django CMS packages. <strong>django-treebeard<\/strong> is an app that manages page and plugin tree structures. The <strong>djangocms_admin_style<\/strong> app provides an easier UI for the administration component. It overrides the <strong>base_site.html<\/strong> of Django Admin.<\/p>\n<h4>Language Settings for Django CMS<\/h4>\n<p>Django CMS requires the language setup. We will simply modify the default one and paste some additional code.<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">LANGUAGES = [\r\n    ('en', 'English'),\r\n    ('de', 'German'),\r\n]<\/pre>\n<p style=\"text-align: center;\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Language-Setup.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-72188\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Language-Setup.png\" alt=\"Language Setup - Django CMS\" width=\"1920\" height=\"976\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Language-Setup.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Language-Setup-150x76.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Language-Setup-300x153.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Language-Setup-768x390.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Language-Setup-1024x521.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Language-Setup-520x264.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p>Also, change the <strong>Language_Code<\/strong> from<strong> \u2018en-us\u2019<\/strong> to <strong>\u2018en\u2019<\/strong>. This is required to match the code. You will see this come up in urls.<\/p>\n<p>This is one of the strategies of Django CMS to keep the website international. This will help you if your website has multiple languages.<\/p>\n<h4>Migrate to Database<\/h4>\n<p>This is an important part of the application. We will apply migrations to the Django CMS database. Generally, databases like PostgreSQL, MySQL are preferred. We can test ours with SQLite.<\/p>\n<p>Execute these commands in order:<\/p>\n<p><em><strong>$ python manage.py migrate<\/strong><\/em><\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Migrating-changes-to-Database.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-72189\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Migrating-changes-to-Database.png\" alt=\"Migrating changes to Database - Django CMS\" width=\"1920\" height=\"972\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Migrating-changes-to-Database.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Migrating-changes-to-Database-150x76.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Migrating-changes-to-Database-300x152.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Migrating-changes-to-Database-768x389.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Migrating-changes-to-Database-1024x518.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Migrating-changes-to-Database-520x263.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p>There will be a long list of migrations. The Django Content Management System has some of its own tables.<\/p>\n<h4>Create a Superuser<\/h4>\n<p>Superuser will be important in the case of Django CMS.<\/p>\n<p><em><strong>$ python manage.py createsuperuser<\/strong><\/em><\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Creating-superuser.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-72190\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Creating-superuser.png\" alt=\"Creating superuser - Django CMS\" width=\"856\" height=\"233\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Creating-superuser.png 856w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Creating-superuser-150x41.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Creating-superuser-300x82.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Creating-superuser-768x209.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Creating-superuser-520x142.png 520w\" sizes=\"auto, (max-width: 856px) 100vw, 856px\" \/><\/a><\/p>\n<p>Then we can run one more awesome CLI command. This command will look for errors in settings.py file. These errors will be regarding the installation of applications.<\/p>\n<h4>Installing Sekizai and other important packages<\/h4>\n<p>There are some important packages that are needed by Django CMS. When we execute this command, we get:<\/p>\n<p><em><strong>$ python manage.py cms check<\/strong><\/em><\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Checking-CMS-for-Errors.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-72191\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Checking-CMS-for-Errors.png\" alt=\"Checking CMS for Errors - Django CMS Tutorial\" width=\"1920\" height=\"972\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Checking-CMS-for-Errors.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Checking-CMS-for-Errors-150x76.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Checking-CMS-for-Errors-300x152.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Checking-CMS-for-Errors-768x389.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Checking-CMS-for-Errors-1024x518.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Checking-CMS-for-Errors-520x263.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p>This output is provided by the CLI. There is A list of errors that need to be resolved. So, let\u2019s tackle them one by one.<\/p>\n<p>The first error can be resolved by installing the <strong>Sekizai<\/strong> package. Sekizai is a Japanese word. Its literal meaning in Japanese is blocks. It works for the literal meaning of its name. It will provide us with pre-defined tags or blocks of the\u00a0<em><strong>Django templating language<\/strong><\/em>. This package can be used without CMS.<\/p>\n<p>It\u2019s an awesome package for Django developers and you should definitely check it out. It comes pre-installed with Django Content Management System and you just need to install it in the project.<\/p>\n<p>Inside <strong>settings.py<\/strong> file, in <strong>INSTALLED_APPS<\/strong>, add:<\/p>\n<p><em><strong>\u2018sekizai\u2019<\/strong><\/em><\/p>\n<p>Also, add this line inside the <strong>TEMPLATES<\/strong> list.<\/p>\n<p><em><strong>&#8216;sekizai.context_processors.sekizai&#8217;,<\/strong><\/em><\/p>\n<p>The screenshots are like this:<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/INSTALLED_APPS-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-72192\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/INSTALLED_APPS-1.png\" alt=\"INSTALLED_APPS - Django CMS\" width=\"1920\" height=\"976\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/INSTALLED_APPS-1.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/INSTALLED_APPS-1-150x76.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/INSTALLED_APPS-1-300x153.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/INSTALLED_APPS-1-768x390.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/INSTALLED_APPS-1-1024x521.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/INSTALLED_APPS-1-520x264.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Templates-Processor.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-72193\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Templates-Processor.png\" alt=\"Templates Processor - Django CMS\" width=\"1920\" height=\"976\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Templates-Processor.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Templates-Processor-150x76.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Templates-Processor-300x153.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Templates-Processor-768x390.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Templates-Processor-1024x521.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Templates-Processor-520x264.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p>The Sekizai package uses its own template processor. This processor will interpret the template tags correctly. Now, to remove the middleware errors.<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">\u00a0\u00a0\u00a0\u00a0'django.middleware.locale.LocaleMiddleware',\r\n\u00a0\u00a0\u00a0\u00a0'cms.middleware.user.CurrentUserMiddleware',\r\n\u00a0\u00a0\u00a0\u00a0'cms.middleware.page.CurrentPageMiddleware',\r\n\u00a0\u00a0\u00a0\u00a0'cms.middleware.toolbar.ToolbarMiddleware',\r\n\u00a0\u00a0\u00a0\u00a0'cms.middleware.language.LanguageCookieMiddleware',<\/pre>\n<p style=\"text-align: center;\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Installing-middleware.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-72194\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Installing-middleware.png\" alt=\"Installing middleware - Django CMS Tutorial\" width=\"1920\" height=\"976\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Installing-middleware.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Installing-middleware-150x76.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Installing-middleware-300x153.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Installing-middleware-768x390.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Installing-middleware-1024x521.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Installing-middleware-520x264.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p>Now, we need to add two more context processors in templates. Add these processors under<\/p>\n<p><em><strong>TEMPLATES[0][\u2018OPTIONS\u2019][\u2018context_processors\u2019] list.<\/strong><\/em><\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">'cms.context_processors.cms_settings',\r\n'django.template.context_processors.i18n',<\/pre>\n<p style=\"text-align: center;\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Django-Template-Processors.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-72195\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Django-Template-Processors.png\" alt=\"Django Template Processors - Django CMS\" width=\"1920\" height=\"976\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Django-Template-Processors.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Django-Template-Processors-150x76.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Django-Template-Processors-300x153.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Django-Template-Processors-768x390.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Django-Template-Processors-1024x521.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Django-Template-Processors-520x264.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p>Now, when we again run the command:<\/p>\n<p><em><strong>$ python manage.py cms check<\/strong><\/em><\/p>\n<p>We get no errors:<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/CMS-Check.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-72196\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/CMS-Check.png\" alt=\"CMS Check\" width=\"1920\" height=\"972\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/CMS-Check.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/CMS-Check-150x76.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/CMS-Check-300x152.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/CMS-Check-768x389.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/CMS-Check-1024x518.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/CMS-Check-520x263.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<h3>Configuring URLs<\/h3>\n<p>Now, we will configure URLs of our settings. Open <strong>urls.py<\/strong> of the project and paste this code.<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">from django.contrib import admin\r\nfrom django.conf.urls import url, include\r\n\r\nurlpatterns = [\r\n    url(r'^admin\/', admin.site.urls),\r\n    url(r'^', include('cms.urls')),\r\n]<\/pre>\n<p style=\"text-align: center;\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Configuring-urls.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-72197\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Configuring-urls.png\" alt=\"Configuring urls - Django CMS Tutorial\" width=\"1920\" height=\"976\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Configuring-urls.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Configuring-urls-150x76.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Configuring-urls-300x153.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Configuring-urls-768x390.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Configuring-urls-1024x521.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Configuring-urls-520x264.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p>At this point, you can test the project. I would recommend that you still follow the tutorial. We will be installing some more packages and plugins.<\/p>\n<h4>Configuring Media and Static Settings<\/h4>\n<p>Our Django project is going to handle two types of files:<\/p>\n<ul>\n<li>Static Files like CSS<\/li>\n<li>JavaScript files<\/li>\n<\/ul>\n<p>These files are sent alongside the Html page to render beautiful web pages. Media files or images, docs are uploaded by users.<\/p>\n<p>Paste this code in <strong>settings.py<\/strong> file to configure media and static settings.<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">MEDIA_URL = \"\/media\/\"\r\nMEDIA_ROOT = os.path.join(BASE_DIR, \"media\")<\/pre>\n<p style=\"text-align: center;\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Settings-for-Media-Files.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-72198\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Settings-for-Media-Files.png\" alt=\"Settings for Media Files - Django CMS\" width=\"1920\" height=\"976\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Settings-for-Media-Files.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Settings-for-Media-Files-150x76.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Settings-for-Media-Files-300x153.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Settings-for-Media-Files-768x390.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Settings-for-Media-Files-1024x521.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Settings-for-Media-Files-520x264.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p>Also, replace the code in <strong>urls.py<\/strong> with this one.<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">from django.contrib import admin\r\nfrom django.conf.urls import url, include, static\r\nfrom django.conf import settings\r\n#DataFlair #DjangoCMS\r\nurlpatterns = [\r\n    url(r'^admin\/', admin.site.urls),\r\n    url(r'^', include('cms.urls')),\r\n] + static.static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)<\/pre>\n<p style=\"text-align: center;\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/urls-py.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-72199\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/urls-py.png\" alt=\"urls.py - Django CMS \" width=\"1920\" height=\"976\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/urls-py.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/urls-py-150x76.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/urls-py-300x153.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/urls-py-768x390.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/urls-py-1024x521.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/urls-py-520x264.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<h4>Adding templates<\/h4>\n<p>There are elements like pages in Django Content Management System. The pages require at least one template. We will be developing just that.<\/p>\n<p>Open settings.py file and paste this setting above the <strong>TEMPLATES<\/strong> list.<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">CMS_TEMPLATES = [\r\n    ('home.html', 'Home page template'),\r\n]<\/pre>\n<p style=\"text-align: center;\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Configuring-settings.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-72201\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Configuring-settings.png\" alt=\"Configuring settings - Django CMS Tutorial\" width=\"1920\" height=\"976\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Configuring-settings.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Configuring-settings-150x76.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Configuring-settings-300x153.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Configuring-settings-768x390.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Configuring-settings-1024x521.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Configuring-settings-520x264.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p>Also, add<strong> \u2018templates\u2019<\/strong> in TEMPLATES[\u2018DIR\u2019] list. Make sure the changes are made according to the image above. We will make the folder templates. Inside templates, folder makes a new file &#8211; <strong>templates\/home.html<\/strong>.<\/p>\n<p>Paste this code in home.html:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">{% load cms_tags sekizai_tags %}\r\n&lt;html&gt;\r\n    &lt;head&gt;\r\n        &lt;title&gt;{% page_attribute \"page_title\" %}&lt;\/title&gt;\r\n        {% render_block \"css\" %}\r\n    &lt;\/head&gt;\r\n    &lt;body&gt;\r\n        {% cms_toolbar %}\r\n        {% placeholder \"content\" %}\r\n        {% render_block \"js\" %}\r\n    &lt;\/body&gt;\r\n&lt;\/html&gt;\r\n\r\n<\/pre>\n<p style=\"text-align: center;\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Templates-home-html.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-72202\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Templates-home-html.png\" alt=\"Templates\/home.html\" width=\"1920\" height=\"976\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Templates-home-html.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Templates-home-html-150x76.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Templates-home-html-300x153.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Templates-home-html-768x390.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Templates-home-html-1024x521.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Templates-home-html-520x264.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p><strong>Understanding the Code:<\/strong><\/p>\n<p>The first line <strong>{% load %}<\/strong> will load template libraries of Sekizai and CMS tags. Then there are tags of those libraries used in the HTML. The <strong>{% page_attribute \u201cpage_title\u201d %}<\/strong> will extract the page title. You will see when we make our pages. The Django CMS has core elements called pages.<\/p>\n<p>These are the webpages or content pages.<\/p>\n<p><strong>{% render_block \u2018css\u2019 %}<\/strong> and <strong>{% render_block \u2018js\u2019 %}<\/strong> are two Sekizai library tags. The rendered block will load the HTML blocks code. The name can change according to the user. Django Content Management System by-default gives CSS and js tags.<\/p>\n<p>It defines these HTML blocks which contain its CSS and JavaScript files. It is recommended that the <strong>CSS<\/strong> tag is used just before <strong>&lt;\/head&gt;<\/strong>. Similarly, <strong>js<\/strong> tag be used just before <strong>&lt;\/body&gt;<\/strong> tag.<\/p>\n<p>The other {% cms_toolbar %} will load the django cms toolbar.<strong> {% placeholder %}<\/strong> tag shall be present in the template to be useful for Django CMS. It will become clearer once we use a Django Content Management System.<\/p>\n<h4>Starting the CMS<\/h4>\n<p>We have completed the basic setup of our project. Let\u2019s start the server.<\/p>\n<p><em><strong>$ python manage.py runserver<\/strong><\/em><\/p>\n<p>We get a beautiful admin right at the start.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Django-CMS-starting.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-72203\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Django-CMS-starting.png\" alt=\"Django CMS starting\" width=\"1920\" height=\"1030\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Django-CMS-starting.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Django-CMS-starting-150x80.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Django-CMS-starting-300x161.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Django-CMS-starting-768x412.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Django-CMS-starting-1024x549.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Django-CMS-starting-520x279.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p>After login, we need to make a new page. We will make a new page by clicking on the <strong>Next<\/strong> button.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/new-page.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-72204\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/new-page.png\" alt=\"new page - Django CMS\" width=\"1920\" height=\"1030\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/new-page.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/new-page-150x80.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/new-page-300x161.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/new-page-768x412.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/new-page-1024x549.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/new-page-520x279.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p>Now, fill the fields as you like. Click on the <strong>Create<\/strong> button.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/details-of-page.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-72205\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/details-of-page.png\" alt=\"details of page - Django CMS\" width=\"1920\" height=\"1030\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/details-of-page.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/details-of-page-150x80.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/details-of-page-300x161.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/details-of-page-768x412.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/details-of-page-1024x549.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/details-of-page-520x279.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p>You will see that the page title has been changed. Well, that\u2019s not all the Django CMS can do. The CMS is much more powerful when there are plugins. Its true power comes from its plugins. You can check out here the number of plugins provided by Django CMS.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/new-page-created.png\"><img loading=\"lazy\" decoding=\"async\" class=\"img-gray-border aligncenter wp-image-72206 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/new-page-created.png\" alt=\"new page created\" width=\"1920\" height=\"1030\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/new-page-created.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/new-page-created-150x80.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/new-page-created-300x161.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/new-page-created-768x412.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/new-page-created-1024x549.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/new-page-created-520x279.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p>The new page we just created does not contain anything. It can be changed with the installation of various plugins. It\u2019s easy to use. You can get the plugins on the <a href=\"https:\/\/marketplace.django-cms.org\/en\/addons\/\">Django CMS website<\/a>.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Django-CMS-Website-Plugins.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-72207\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Django-CMS-Website-Plugins.png\" alt=\"Django CMS Website Plugins\" width=\"1920\" height=\"948\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Django-CMS-Website-Plugins.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Django-CMS-Website-Plugins-150x74.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Django-CMS-Website-Plugins-300x148.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Django-CMS-Website-Plugins-768x379.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Django-CMS-Website-Plugins-1024x506.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/Django-CMS-Website-Plugins-520x257.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p>These plugins can be used to maintain various content. It can be images, text even videos and CSS, js, etc. All these plugins are awesome and many popular companies support them. Discord, Bootstrap are some of the popular names amongst them.<\/p>\n<p>These plugins are mostly free. It depends on your use-case whether you want to use CMS or not.<\/p>\n<h2>Summary<\/h2>\n<p>Django CMS is an awesome system. There are many CMS systems for the same use-case. The CMS like Wagtail is on par with Django CMS and is often preferred. Still, Django CMS is no.1 in industry.<\/p>\n<p>The power of the Django Content Management System is in its plugins. These plugins add various features and specialize in one kind of content.<\/p>\n<p>Django CMS is an awesome framework. An understanding of Django will help you but is not necessary.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Django is an amazing web-framework in itself. There are various packages and frameworks built around Django to provide more functionality. In this article, we are going to learn about one such software &#8211; The&#46;&#46;&#46;<\/p>\n","protected":false},"author":6,"featured_media":72256,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19149],"tags":[21394,21395,21397,21398,21396],"class_list":["post-72169","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-django","tag-django-cms","tag-django-cms-database","tag-django-cms-install","tag-django-cms-templates","tag-django-content-management-system"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Django CMS Tutorial - Complete Installation Process &amp; Benefits - DataFlair<\/title>\n<meta name=\"description\" content=\"Learn to install Django CMS in your project by creating a superuser with source code and benefits of using Django CMS over Django.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/django-cms\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Django CMS Tutorial - Complete Installation Process &amp; Benefits - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Learn to install Django CMS in your project by creating a superuser with source code and benefits of using Django CMS over Django.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/django-cms\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-11-05T09:21:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-21T06:49:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/django-CMS-tutorial.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"802\" \/>\n\t<meta property=\"og:image:height\" content=\"420\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Django CMS Tutorial - Complete Installation Process &amp; Benefits - DataFlair","description":"Learn to install Django CMS in your project by creating a superuser with source code and benefits of using Django CMS over Django.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/django-cms\/","og_locale":"en_US","og_type":"article","og_title":"Django CMS Tutorial - Complete Installation Process &amp; Benefits - DataFlair","og_description":"Learn to install Django CMS in your project by creating a superuser with source code and benefits of using Django CMS over Django.","og_url":"https:\/\/data-flair.training\/blogs\/django-cms\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2019-11-05T09:21:37+00:00","article_modified_time":"2021-06-21T06:49:15+00:00","og_image":[{"width":802,"height":420,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/django-CMS-tutorial.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/django-cms\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/django-cms\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/2c58ecb4f73a39f0ef993f1ddfcd7b89"},"headline":"Django CMS Tutorial &#8211; Complete Installation Process &amp; Benefits","datePublished":"2019-11-05T09:21:37+00:00","dateModified":"2021-06-21T06:49:15+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/django-cms\/"},"wordCount":1625,"commentCount":7,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/django-cms\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/django-CMS-tutorial.jpg","keywords":["Django CMS","django cms database","django cms install","django cms templates","django content management system"],"articleSection":["Django Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/django-cms\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/django-cms\/","url":"https:\/\/data-flair.training\/blogs\/django-cms\/","name":"Django CMS Tutorial - Complete Installation Process &amp; Benefits - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/django-cms\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/django-cms\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/django-CMS-tutorial.jpg","datePublished":"2019-11-05T09:21:37+00:00","dateModified":"2021-06-21T06:49:15+00:00","description":"Learn to install Django CMS in your project by creating a superuser with source code and benefits of using Django CMS over Django.","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/django-cms\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/django-cms\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/django-cms\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/django-CMS-tutorial.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/11\/django-CMS-tutorial.jpg","width":802,"height":420,"caption":"django CMS tutorial"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/django-cms\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"Django Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/django\/"},{"@type":"ListItem","position":3,"name":"Django CMS Tutorial &#8211; Complete Installation Process &amp; Benefits"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/2c58ecb4f73a39f0ef993f1ddfcd7b89","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"The DataFlair Team provides industry-driven content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our expert educators focus on delivering value-packed, easy-to-follow resources for tech enthusiasts and professionals.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam2\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/72169","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=72169"}],"version-history":[{"count":12,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/72169\/revisions"}],"predecessor-version":[{"id":97544,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/72169\/revisions\/97544"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/72256"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=72169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=72169"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=72169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}