Skip to main content

A simple django-based headless CMS.

Project description

Django Headless CMS

Django Headless CMS is your tool for effortless headless CMS creation. Based on Django, it simplifies dashboard and API development, allowing you to focus on content creation for any device. Enjoy the flexibility of headless architecture and the efficiency of Django, reshaping your CMS workflow.

Requirements

  • Python 3.10 or greater.
  • Django 4.0+ (supports up to Django 5.2+).
  • Django knowledge.

Installation

The module can be installed from PyPI:

pip install django-headless-cms
Other installation methods (click to expand)

Install the latest dev version from github (or replace @master with a [@release_version]

pip install git+https://github.com/huynguyengl99/django-headless-cms@master

Document

Please visit Django headless CMS doc for documentation.

Introduction

Why Choose Django-headless-cms?

Why choose Django-headless-cms over alternatives like Wagtail, Django-CMS, Strapi, or Contentful?

  • Headless CMS with minimal configuration: Unlike Wagtail and Django-CMS, which are primarily headed CMS solutions.
  • Responsive UI: Preferred over Strapi for its user interface.
  • Python & Django-based: Built on a robust framework with numerous extensions.
  • Open Source: Unlike Contentful and other paid services, it allows you to self-host your CMS.
  • Integration: Easily integrates with many existing Python and Django libraries.
  • Centralized multi-language support: Reduces redundancy and allows different content across multiple languages.

Features

  • Schema Migrations: Manage content schema as database migrations, making it easier to sync from development to production environments.
  • Versioning Content: Revert to any previously saved version.
  • Publish/Draft Content: Manage published and draft content.
  • Markdown Editor Support: Enhanced content editing experience, useful for Posts/Articles.
  • Multi-language Support: Even for Markdown fields.
  • Auto Translate/Force Re-translate: Use ChatGPT or build your own translation interface.
  • Recursive Actions: Apply actions like Publish, Translate, and Force Re-translate to referenced objects.
  • Optimized Queries: Auto prefetch and select related queries for optimization.
  • Filter Published Objects: Easily filter to show only published content.
  • Auto Admin: Simplify admin page setup with features like:
    • Sortable inline Many-to-Many (M2M) relationships.
    • Sortable generic inlines.
    • Display publish status of child objects.
  • Auto Serializer: Simplify serializer creation, including nested relations. Override specific serializers as needed.
  • Rapid API Development: Build APIs (Views/Viewsets) quickly and easily with auto serializers and optimized queries.
  • Easy Data Import/Export: Use the admin interface or management commands.
  • Auto-generated API Documentation & Playground: Automatically generate API documentation and an interactive playground.

Dependencies

Special thanks to these outstanding packages that have been used as supporting components within Django-headless-cms:

[Extra] My Story

After experimenting with various CMS frameworks, I couldn't find a suitable one for my needs:

  • Strapi: Node.js-based and synchronizing schema between development and production can be challenging. Additionally, it lacks a responsive UI, making minor updates on mobile devices difficult.
  • Wagtail and Django-CMS: These are headed CMS solutions, great if you need a WYSIWYG CMS. However, they felt overly complex for my use case and have a steep learning curve.
  • Contentful & other paid services: While these services are excellent, their costs can be prohibitive. Why pay for additional slots when you can add them for free in Django?

After further research into Django-based (and Node.js-based) frameworks, I found none that met my expectations. Given Django's popularity and extensive ecosystem of extensions, I decided to build Django-headless-cms. I also noticed that some Reddit users faced similar issues, which motivated me to create this package.

If you appreciate this package, please give it a star. If you'd like to see more features, consider contributing. If you encounter any issues, don't hesitate to open a GitHub issue (and help fix it if you're willing to contribute).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_headless_cms-1.3.0.tar.gz (45.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_headless_cms-1.3.0-py3-none-any.whl (72.3 kB view details)

Uploaded Python 3

File details

Details for the file django_headless_cms-1.3.0.tar.gz.

File metadata

  • Download URL: django_headless_cms-1.3.0.tar.gz
  • Upload date:
  • Size: 45.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for django_headless_cms-1.3.0.tar.gz
Algorithm Hash digest
SHA256 2b60fdcd60940b8412232d53223288afe5aeea922fac5fc8beefbc6b6a0dbba6
MD5 daff16eef6bc207ee9c2b5167da565ed
BLAKE2b-256 4b187af8070d7eb7440a157847daea4f76fb48aa8bea7c4b457ff8669c6a4737

See more details on using hashes here.

File details

Details for the file django_headless_cms-1.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for django_headless_cms-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 da9c266717f90a36d849f49236b1b9f70668b8d2207b6d5c8dcb7baf1b77cc74
MD5 c59bf5af55cd3fdf668240e4083a35b0
BLAKE2b-256 4ebfbe795179c906b64e06a1ccadd4fd2983a3488dc002fd1a2dc797291ccd5a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page