Very happy to announce the release of Mezzanine  and Cartridge 
versions 1.2 and 0.6 respectively. If you haven't heard of these, they're a
BSD licensed CMS and ecommerce platform built with Django, that you can use
in a standard Django project. They've been under constant development since
2009, with hundreds of mailing list subscribers and followers across
GitHub, as well as code contributions from around a hundred developers.
Mezzanine and Cartridge also contain translations for around twenty
different languages, and have been deployed across hundreds of production
sites , from design agencies and web applications, to personal blogs and
Since the last release announcement to this list around two months ago ,
there have been many minor bug-fixes and performance enhancements. Apart
from those, here's a list of some of the notable new features:
- Pages can now be targeted for inclusion in each individual menu on the
site, whereas previously they could only be flagged as appearing in all
menus and/or the footer menu.
- Ordering of page processors  is now more logical - slug-based
processors are run before model-based processors, and processors are run in
the order of last-registered to first-registered.
- Live page editing behaves more cleanly when alternatives to jQuery are
- New optional meta title field for pages, allowing the value of the HTML
title tag for a page to be overridden.
- New hierarchical template loading, where templates can be loaded for a
page based on its parent, allowing whole sections of a site to implement
their own layouts.
- New setting for controlling whether login-protected pages are listed in
navigation menus and search results.
- Bundled deployments built with Fabric now include a rollback command,
which will revert a production instance back to its previous state prior to
the last deploy.
- Bundled deployments are also sped up by not updating pip requirements
unless the requirements have changed.
- New SITE_PREFIX setting which allows all of Mezzanine to be mounted under
custom URL, as you might normally do with a typical Django app.
- Cache keys are now hashed, allowing for very long URLs to work when the
memcached backend is used.
- Gallery app contains better support for remote storage backends like S3.
- Custom signup/update profile forms can now be defined with the
new ACCOUNTS_PROFILE_FORM_CLASS setting.
- Default Twitter feed can now be managed via the admin.
As usual, I've released a new version of Cartridge to coincide with the new
Mezzanine release. Most of the changes in Cartridge have been minor fixes
and enhancements, as well as keeping it up to date with the new changes in
One major new feature in this release of Cartridge is a
new SHOP_USE_VARIATIONS setting. Cartridge has always has its products and
variations modelled in a way where products that don't have any variations
in the real world are given a single default variation under the hood, so
that the same APIs and routines are always used throughout the code base
regardless of your product variation requirements. When the
new SHOP_USE_VARIATIONS is set to False, some interface enhancements are
made to the admin whereby the single default variation per product can be
managed in a more streamlined way, such as editing their values in the
product listing view in a spreadsheet style manner.
Those are some of the highlights - check out the full changelogs for
Mezzanine  and Cartridge  for both these releases. If you have a new
Django project coming up with requirements spanning anywhere across the
spectrum of CMS and ecommerce, please take a close look at Mezzanine and
A huge thanks goes out to everyone in the Mezzanine community who has
helped to bring it to where it is today, and to the Django developers and
wider community for making it possible.