django CMS Versioning
Installation
Requirements
django CMS Versioning requires that you have a django CMS 4.0 (or higher) project already running and set up.
Note: This package uses django-fsm-2 (actively maintained by Django Commons) instead of the original django-fsm for better support and maintenance.
To install
Run:
pip install djangocms-versioning
Add djangocms_versioning to your project’s INSTALLED_APPS.
Run:
python -m manage migrate djangocms_versioning python -m manage create_versions --userid <user-id-of-migration-user>
to perform the application’s database migrations and (only if you have an existing database) add version objects needed to mark existing versions as draft.
Usage
To add versioning to your own models, start with the tutorial in docs/tutorials/versioning_a_blog.rst. More detailed integration instructions are available in docs/howto/versioning_integration.rst.
An example implementation can be found here:
Testing
To run all the tests the only thing you need to do is run:
pip install -r tests/requirements/requirements_dev.txt pytest
Frontend assets
The JavaScript bundles in djangocms_versioning/static/ are built with webpack and managed via npm scripts. Node.js 24 is required (see .nvmrc).
Install dependencies:
npm install
Common commands:
npm run build # production build npm run build:dev # development build (sourcemaps, no minification) npm run watch # rebuild on file change npm run lint # ESLint over the project's JS sources
End-to-end tests with Playwright:
npm run e2e # runs the build with coverage instrumentation, then Playwright
Documentation
The documentation is online on readthedocs.
We maintain documentation in this repository under the docs folder using rst format.
To generate the HTML documentation you will need to install sphinx (pip install sphinx) and graphviz (as per your operating system’s package management system). You can then generate the docs using the following command:
Run:
cd docs/ make html
This should generate all html files from rst documents under docs/_build folder, which can be browsed.
Contributing
Because this is a an open-source project, we welcome everyone to get involved in the project and receive a reward for their contribution. Become part of a fantastic community and help us make django CMS the best CMS in the world.
We’ll be delighted to receive your feedback in the form of issues and pull requests. Before submitting your pull request, please review our contribution guidelines.
The project makes use of git pre-commit hooks to maintain code quality. Please follow the installation steps to get pre-commit setup in your development environment.
We’re grateful to all contributors who have helped create and maintain this package. Contributors are listed at the contributors section.
One of the easiest contributions you can make is helping to translate this addon on Transifex. To update transifex translation in this repo you need to download the transifex cli and run tx pull from the repo’s root directory. After downloading the translations do not forget to run the compilemessages management command.
Metadata
Release files for djangocms-versioning 2.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| djangocms_versioning-2.8.0.tar.gz | 646.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| djangocms_versioning-2.8.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.3 MB
Release files / djangocms_versioning-2.8.0.tar.gz
| Download URL | djangocms_versioning-2.8.0.tar.gz |
|---|---|
| Size | 646.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cc71d2baa139ff3a87b202eef7a25c41993e6807b55ca64f63a921b2a1b80ad0
|
|
BLAKE2b-256 checksum How to use checksums |
ca6eda9891adfcd5d7d6cb236efcbc9cd5180dfdc4b2298bea5ebf1cb39ad6d4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / djangocms_versioning-2.8.0-py3-none-any.whl
| Download URL | djangocms_versioning-2.8.0-py3-none-any.whl |
|---|---|
| Size | 688.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4ad9b43692549d11a7b56f294043aa72cd359b74950135149eec80a84d702745
|
|
BLAKE2b-256 checksum How to use checksums |
d3b144942124f06c25b4038570a59079938825124e9c9825b46f81c4231070e4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency log