django-ckeditor-5
CKEditor 5 for Django.
What it is and what it does
django-ckeditor-5 provides a Django field type and form widget that embeds CKEditor 5, a JavaScript-based rich-text editor, into your models and forms. You add it to your Django app, configure toolbars and plugins in settings.py, then use CKEditor5Field in your models or CKEditor5Widget in your forms to give users a full-featured editor for text content. It handles file uploads through Django's media system or custom upload views, and lets you customize the editor's appearance and available tools via configuration dictionaries.
The package depends only on Django and Pillow, making it lightweight to install. It supports Django 4.2, 5.2, and 6.0, and Python 3.8 through 3.13. The editor includes built-in plugins for text formatting, lists, tables, images, links, code blocks, and more—all configurable per field. You can define multiple configurations and assign them to different fields.
Use it for:
- Add a rich-text editor to a Django blog or article model so authors can format content with bold, lists, links, and embedded images without writing HTML.
- Build a comment form with a lightweight editor toolbar for user-submitted content while restricting certain tools like code blocks.
- Create a CMS where different content sections use different editor configurations—simple for headlines, full-featured for body text.
- Handle image and file uploads within the editor, storing them in Django's media directory or a custom storage backend.
- Customize the editor's color palette, fonts, and available formatting tools to match your application's design system.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Integrates CKEditor 5, a modern rich-text editor, into Django models and forms as a field type and widget with configurable toolbars, plugins, and file upload handling.
Yes. The package is actively maintained, has no known vulnerabilities, installs with minimal friction, and is widely used. It's the standard way to integrate CKEditor 5 into Django. Install it if you need a production-ready rich-text editor for Django models or forms.
Install
django-ckeditor-5 on PyPI
pip
pip install django-ckeditor-5uv
uv add django-ckeditor-5poetry
poetry add django-ckeditor-5Installing django-ckeditor-5
Before you install
Low friction install with only Django and Pillow as runtime dependencies. Package is actively maintained with recent commits and steady download volume, indicating stable ongoing support.
License in practice
BSD-3-Clause is permissive; you can use, modify, and distribute this package with minimal restrictions in commercial and open-source projects.
Quickstart
pip install django-ckeditor-5
In settings.py:
INSTALLED_APPS = ['django_ckeditor_5']
In models.py:
from django_ckeditor_5.fields import CKEditor5Field
class Article(models.Model):
text = CKEditor5Field('Text', config_name='default')
Verify before relying
- Whether CKEditor 5 JavaScript assets are bundled or require separate CDN/static file setup beyond Django's static file handling.
- Performance characteristics when handling large documents or high-concurrency file uploads.
- Compatibility with Django REST Framework serializers if used in API contexts.
Package facts
| License | BSD-3-Clause (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — Django, Pillow |
| Maintenance | actively maintained — 174 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 294,974/month — #7,936 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: django_ckeditor_5-0.2.20-py3-none-any.whl
Keywords: CKEditor, CKEditor5, Django
Tags
More WWW/HTTP packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
h11h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI
aiohttpaiohttp is an async HTTP client and server…
permissive · top 100 on PyPI
django-ckeditorIntegrates CKEditor 4.18.0 rich-text editing…
permissive · top 5,000 on PyPI
djangocms-text-ckeditorIntegrates CKEditor (v4.17.2) as a text editing…
permissive · top 15,000 on PyPI
django-tinymcedjango-tinymce provides a Django form widget…
copyleft · top 5,000 on PyPI
django-jsoneditorProvides a Django form widget for editing JSON…
unclear · top 15,000 on PyPI
django-summernoteEmbeds the Summernote WYSIWYG editor into…
permissive · top 15,000 on PyPI
django-permissionedformsExtends Django's forms framework to…
permissive · top 5,000 on PyPI
streamlit-quillEmbeds a React Quill rich-text editor component…
unclear · top 15,000 on PyPI
crispy-bootstrap4Provides Bootstrap 4 HTML templates for…
permissive · top 15,000 on PyPI
django-jsonformProvides a user-friendly JSON editing form…
permissive · top 15,000 on PyPI
crispy-tailwindProvides Tailwind CSS styling templates for…
permissive · top 15,000 on PyPI