Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Django Blueprint

PyPI version Python versions Django versions License

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: FlexField validates stored content against a JSON Schema, so editor-configurable content stays structured
  • 🖼️ Media library: Media and Folder models plus MediaField/ManyMediaField with a file_type hint 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:

🤝 Contributing

We welcome contributions! Here's how to get started:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Add tests for your changes
  5. Run the test suite (poetry run pytest)
  6. Commit your changes (git commit -m 'Add amazing feature')
  7. Push to the branch (git push origin feature/amazing-feature)
  8. 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

📄 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

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)

Source distribution for django-blueprint 1.0.0rc2
File Size Uploaded
django_blueprint-1.0.0rc2.tar.gz 15.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-blueprint 1.0.0rc2
File Interpreter ABI Platform
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
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page