django-ckeditor-5
CKEditor 5 for Django.
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
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 · maintenance · safety
BSD-3-Clause (permissive) — BSD-3-Clause is permissive; you can use, modify, and distribute this package with minimal restrictions in commercial and open-source projects.
last release 2026-02-21 (174 days) · last repo commit 2026-03-04 · 213 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 294,974 downloads/mo, #7,936 on PyPI
Alternatives
Verify before relying
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')- 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.
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 on it.
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
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 packagesDjangoPillow |
| 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 |
| Classifiers | Environment :: Web EnvironmentFramework :: DjangoFramework :: Django :: 4.2Framework :: Django :: 5.2Framework :: Django :: 6.0Intended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Internet :: WWW/HTTPTopic :: Internet :: WWW/HTTP :: Dynamic Content |
Evidence: django_ckeditor_5-0.2.20-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “ckeditor5 django integration”
- django-ckeditor-5Integrates CKEditor 5, a modern rich-text editor, into Django models…
- django-webtestIntegrates WebTest with Django's testing framework to enable…
- django-htmxProvides Django integration utilities for htmx, enabling server-side…
Give your agent the search over MCP, or paste the wish link into any chat.
More WWW/HTTP packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
h11 is a pure-Python HTTP/1.1 protocol implementation that handles parsing and serializing HTTP messages without any built-in I/O, letting you integrate it with any network layer you choose.
HTTPX is a fully featured HTTP client library for Python that provides both sync and async APIs, with support for HTTP/1.1 and HTTP/2, plus an integrated command-line client.
Install it if you are building new projects or modernizing existing ones that rely on HTTP.
A minimal low-level HTTP client library that sends HTTP requests with thread-safe and task-safe connection pooling, supporting HTTP/1.1, HTTP/2, proxies, and both sync and async interfaces.
aiohttp is an async HTTP client and server framework built on asyncio, supporting both WebSockets and middleware-based routing for building concurrent web applications.
Install it if you need async HTTP client or server capabilities in asyncio-based applications.
See also django-ckeditor · djangocms-text-ckeditor · django-tinymce · django-jsoneditor · django-summernote · django-permissionedforms · streamlit-quill · crispy-bootstrap4 · django-jsonform · crispy-tailwind