Templates Themes like wordpress?

Is it possible to change template themes like we can do in WordPress?


djangoCMS works a little different than WordPress. In a djangoCMS project you have your templates inside a templates folder, and the assets (javascript files, images, css files) inside a static folder. Its not that you have something like a themes folder where you can install different themes from like in WordPress.

Hope i could answer your question!


In wordpress you can install and change themes from the admin. django-cms has a similar concept to this, but you have to build or add your templates (theme if you will) to your app and then deploy those changes.

The difference between django-cms and wordpress though is that each page in CMS can have a different template, so in essence each page can have a different theme if you build them. You could have 1 template which linked to a certain CSS file and another template that linked to a different CSS file, giving the two pages very different look & feel.


While for Wordpress you can make a neat website within minutes, it takes some knowledge of at least HTML and CSS, better also in JavaScript (front end) and Python (back end) for creating a django CMS website. So though there was an old downloadable theme project, and there’s a website selling django CMS themes, usually you build your own custom design.

So you can’t build a nice custom website in 5 min with django CMS, but if you need to customise your website anyway, it is much easier and cleaner. If you look at WordPress themes and want to change something, it’s a nightmare because the themes are a mess of PHP code, HTML, CSS, JS. In django CMS you can start with a small HTML file containing one placeholder where the content goes. And then you can design and add things as needed.

Took me a while to figure out where to put additional templates, so I want to share that.

When you have a standard installation of Django CMS 3.8, your templates will be in /mysite/mysite/templates. By default you will find base.html, feature.html, menu.html and page.html in that folder. In your settings.py there is an entry:

## Customize this
(‘page.html’, ‘Page’),
(‘feature.html’, ‘Page with Feature’)

If you want to add your own template, put the template in your template folder, then add it in the settings.py. Afterwards the new template will be available in the dropdown menu when editing pages. Afterwards you can create a pagetype that uses the template as a default so that users/editors can just start with a pagetype.

Why not just read the documentation?

I find the documentation to be very thin and full of (non explained) conventions that are not at all intuitive to people unfamiliar with them.