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.0rc1

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.0rc1
File Size Uploaded
django_blueprint-1.0.0rc1.tar.gz 12.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-blueprint 1.0.0rc1
File Interpreter ABI Platform
django_blueprint-1.0.0rc1-py3-none-any.whl Python 3 none any Details

Total release size: 28.2 kB

Release files / django_blueprint-1.0.0rc1.tar.gz

Download URL django_blueprint-1.0.0rc1.tar.gz
Size 12.5 kB
Tags Source
SHA-256 checksum
How to use checksums
40eca8ab5959c2042de77965b4be531a1ed5642aeab679108f38c9c7138ba803
BLAKE2b-256 checksum
How to use checksums
36cf3d50f4939a564ba9d27d86722fd8c0899a4f5d875e74017ae76234bfd225
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.0rc1-py3-none-any.whl

Download URL django_blueprint-1.0.0rc1-py3-none-any.whl
Size 15.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5199eb5a96cdb88a6c310fac22e06ad1ffd29bd47f892b45a3c8f9cfa465296f
BLAKE2b-256 checksum
How to use checksums
698885ffd2bcafdd687fbd9132bedbdd54b902d4c9e24fa266418d716691608c
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