skillfed

django-ckeditor-5

CKEditor 5 for Django.

django-ckeditor-5 v0.2.20 295.0K downloads/30d#7,936 on PyPI213
Permissive license BSD-3-Clause Active released

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-5

uv

uv add django-ckeditor-5

poetry

poetry add django-ckeditor-5

Installing 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

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

Tags

django rich text editorckeditor5 django integrationdjango wysiwyg editordjango text editor fielddjango content editing widget
django-integrationrich-text-editorform-widget

More WWW/HTTP packages