This release is a pre-release and may not be stable for production use.
Django Blueprint
With Django Blueprint you get the common models and fields every CMS project rebuilds — without buying into a full CMS. Abstract base models, schema-validated JSON fields and a media library, ready to inherit.
📖 Read the full documentation at dwarsbit.github.io/django-blueprint
✨ Features
- 🧩 Composable base models: UUID keys, timestamps, an editor reference, soft deletion, manual ordering and singletons — abstract bases you mix into your models with plain inheritance
- 📐 JSON with a schema:
FlexFieldvalidates stored content against a JSON Schema, so editor-configurable content stays structured - 🖼️ Media library:
MediaandFoldermodels plusMediaField/ManyMediaFieldwith afile_typehint for editors - 🧭 URL paths and tags: a unique, normalized URL path field and a tag field that trims, lowercases and deduplicates
- 🤝 Plays nice: a plain library — no views, no templates, no lock-in; integrates with Django Content Studio
🚀 Quick Start
Install the package:
pip install django-blueprint
Add blueprint to INSTALLED_APPS (plus the media library app if you want it):
# settings.py
INSTALLED_APPS = [
# ...
"blueprint",
"blueprint.media_library", # optional
]
Build a content model:
# apps/blog/models.py
from django.db import models
from blueprint.models import ContentModel
class Article(ContentModel):
title = models.CharField(max_length=200)
body = models.TextField()
def __str__(self):
return self.title
That's it! 🎉 Your model now has a UUID primary key, timestamps, an edited_by audit reference — and the media library, soft deletion and singletons are one import away.
📚 Documentation
All usage and configuration is documented at dwarsbit.github.io/django-blueprint:
- Introduction — what Blueprint is (and is not)
- Getting started — requirements, setup and your first content model
- Content models — all abstract bases and how they compose
- Soft deletion — soft deletes for instances and querysets, two managers
- Manual ordering — order keys and gapless renumbering
- Singletons — settings-style models guaranteed single-row
- FlexField — JSON content validated against a JSON Schema
- URL path, HTML, choices and tags — the remaining fields
- Media library —
Media/Folderand the media reference fields - Validators and managers — the building blocks, usable on their own
🤝 Contributing
We welcome contributions! Here's how to get started:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Add tests for your changes
- Run the test suite (
poetry run pytest) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Development Setup
# Clone the repository
git clone https://github.com/dwarsbit/django-blueprint.git
cd django-blueprint
# Install dependencies (Poetry creates the virtual environment)
poetry install
# Run tests
poetry run pytest
🐛 Issues & Support
- 🐛 Bug Reports: GitHub Issues
- 💬 Discussions: GitHub Discussions
- 📧 Email: leon@dwarsbit.nl
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Built on the shoulders of Django
- Inspired by the headless CMS and Jamstack movement
- Thanks to all contributors and the Django community
🔗 Links
Metadata
Release files for django-blueprint 1.0.0rc2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django_blueprint-1.0.0rc2.tar.gz | 15.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_blueprint-1.0.0rc2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 43.3 kB
Release files / django_blueprint-1.0.0rc2.tar.gz
| Download URL | django_blueprint-1.0.0rc2.tar.gz |
|---|---|
| Size | 15.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
945e55ff9cd05d6e5f57878b8e14516aeaeee03a18de8a01a7896cbd036f6d9c
|
|
BLAKE2b-256 checksum How to use checksums |
dd4d63401fcabb0854f2a944f833d7d863221066b359c59829835bd42936b33a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.4.1 CPython/3.14.7 Darwin/27.0.0
|
Release files / django_blueprint-1.0.0rc2-py3-none-any.whl
| Download URL | django_blueprint-1.0.0rc2-py3-none-any.whl |
|---|---|
| Size | 27.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9598b17acef8792742843f60b24561a84503f9b95a66ab479b49b5807d4227f6
|
|
BLAKE2b-256 checksum How to use checksums |
be9a3e45881f4252c260c33721096ff76060ee0b6b3a25e9be7de6abf2318f6b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.4.1 CPython/3.14.7 Darwin/27.0.0
|