Makina Blog
Presentation of the latest Django CMS: Wagtail
Wagtail is a quite recent Django CMS. However, its young age does not keep it from having a lot of features, which we will discover in this post.
Wagtail is a pack of Django modules adding the features needed for a CMS. We have thus access to Django power combined with Wagtail additions: hierarchical contents management, documents management, images libraries, publication workflow, revision, form creation, REST API, …
The first release of Wagtail was available as soon as 2014, while the first stable release was out on 17th of July 2015. Wagtail improves quickly, its version number currently being the 1.5, each of these releases bringing its batch of new features.
Wagtail being a Django app, it is easy to start a Wagtail website from scratch or from an existing Django one. Just like Django, Wagtail is easily extensible.
Wagtail only provides an administration interface, keeping the front-office development in the hands of the developer.
The BackofficeThe back-office is the part of a website allowing its management. It's only available to administrators and contributors. Wagtail offers a user-friendly and clean interface.
Content Management
Each Wagtail website is structured hierarchically. A page can thus contain other pages. It is the case of the home page, which will always be considered as the website root. This is useful for organizing content: blog posts will be under "blog" page, and so on.
We can see on this screenshot a StreamField, one of the flagship feature of Wagtail. The Wagtail creators have done a demonstration for the 1.0 release.
Another interesting feature is the user bar, a small vignette present directly on the content allowing a fast access to their management.
Images and Documents management
The image management system is classic but still effective. It is possible to batch upload them from the library, or to add them directly from content edition. The possibility to add a focal point allows to make the automatic resizing of image easier and to ensure that the image stays relevant in every situation. The document management is just as simple.
Form creation
Wagtail offers the possibility to make customizable forms directly from the backoffice. The submissions are available online but can also be sent by email. It is thus very easy to create polls or contact pages for example.
User management
Users can be modified straight from the backoffice. Groups allow the management of users permissions, and thus make the definition of specific roles easier, such as contributors, editors, and so on.
The FrontofficeWagtail does not offer a frontoffice by default. However, it uses the Django view and template system wisely. It is thus as simple to create a design for Wagtail that it is for Django. The REST API made available by Wagtail (using Django Rest Framework) also allows frontoffice creation with a JavaScript framework (Angular, React, …).
And way much moreThis Wagtail presentation is far from exhaustive, the possibilities being infinite. It is hard to imagine all the things you can do, the best way to get a good idea may be to see what already exist.
If you are interested by Wagtail, do not hesitate to contact us to express your needs.
Actualités en lien
Utiliser des fonctions PostgreSQL dans des contraintes Django
Cet article vous présente comment utiliser les fonctions et les check constraints
PostgreSQL en tant que contrainte sur vos modèles Django.
Comment migrer vers une version récente de Django ?
Que ce soit pour avoir les dernières fonctionnalités ou les correctifs de sécurité, rester sur une version récente de Django est important pour la pérennité de son projet.
Le projet Agrégateur : fusionner des bases de données Geotrek
Le partage et la diffusion des données font partie des problématiques historiques au cœur du projet Geotrek.