django-summernote
Summernote plugin for Django
What it is and what it does
django-summernote wraps the Summernote JavaScript editor for use in Django projects, allowing developers to add rich-text editing fields to admin interfaces and forms without writing custom JavaScript. It integrates as a Django app with admin mixins and form widgets, supporting file attachments, multiple Bootstrap themes (bs3, bs4, bs5, or lite), and extensive customization through settings.
The package handles the editor's lifecycle—initialization, toolbar configuration, language settings, and attachment storage—through Django's standard patterns. It includes security-conscious form fields (SummernoteTextField, SummernoteTextFormField) that sanitize HTML using mozilla's bleach library to prevent injection attacks. Setup involves adding the app to INSTALLED_APPS, including its URLs, running migrations, and collecting static files.
Use it for:
- Add a rich-text editor to Django admin for blog post or article content fields
- Build a custom form with inline HTML editing for user-generated content
- Enable image and file uploads alongside text editing in admin interfaces
- Customize editor toolbar and appearance to match your application's design theme
- Sanitize and safely display user-submitted HTML content with bleach integration
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Embeds the Summernote WYSIWYG editor into Django admin and forms, providing rich-text editing with support for attachments and customizable themes.
Yes, with caution on maintenance. The package is stable and permissively licensed, with no known vulnerabilities and straightforward Django integration. However, it has been dormant since 2021-10-14—verify compatibility with your Django version before committing. Suitable for projects that need a proven, low-dependency rich-text solution and can tolerate potential lag in upstream updates.
Install
django-summernote on PyPI
pip
pip install django-summernoteuv
uv add django-summernotepoetry
poetry add django-summernoteInstalling django-summernote
Before you install
High install friction due to tarball distribution. Package is dormant—last release was 2021-10-14, over 1765 days ago, though the repository remains active with 1087 stars and a recent commit in 2024-06-07. No runtime dependencies simplifies setup but maintenance lag may affect Django compatibility.
License in practice
MIT license (permissive) allows commercial and private use with minimal restrictions.
Quickstart
pip install django-summernote
# In settings.py:
INSTALLED_APPS += ('django_summernote',)
# In urls.py:
from django.urls import include
urlpatterns = [path('summernote/', include('django_summernote.urls'))]
# In admin.py:
from django_summernote.admin import SummernoteModelAdmin
class MyModelAdmin(SummernoteModelAdmin):
summernote_fields = '__all__'
admin.site.register(MyModel, MyModelAdmin)
Requires Django installation and database migration (python manage.py migrate). MEDIA_URL and MEDIA_ROOT must be configured for attachment uploads.
Verify before relying
- Compatibility with Django versions released after 2021-10-14 (latest release date)
- Whether high install friction is due to build requirements or packaging format only
Package facts
| License | not declared (permissive) |
| Python support | not specified |
| Install friction | high — source build required |
| Runtime dependencies | none |
| Maintenance | dormant — 1,765 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 120,270/month — #12,038 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: django-summernote-0.8.20.0.tar.gz
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
django-aceIntegrates the ACE code editor into Django…
permissive · top 15,000 on PyPI
django-ckeditorIntegrates CKEditor 4.18.0 rich-text editing…
permissive · top 5,000 on PyPI
django-tinymcedjango-tinymce provides a Django form widget…
copyleft · top 5,000 on PyPI
django-json-widgetProvides a rich JSON editor widget for Django's…
permissive · top 5,000 on PyPI
django-quill-editorIntegrates Quill.js, a rich-text WYSIWYG…
permissive · top 15,000 on PyPI
crispy-tailwindProvides Tailwind CSS styling templates for…
permissive · top 15,000 on PyPI
django-jsonformProvides a user-friendly JSON editing form…
permissive · top 15,000 on PyPI
crispy-bootstrap4Provides Bootstrap 4 HTML templates for…
permissive · top 15,000 on PyPI
django-ckeditor-5Integrates CKEditor 5, a modern rich-text…
permissive · top 15,000 on PyPI
crispy-bootstrap3Provides Bootstrap 3 HTML templates for…
permissive · top 15,000 on PyPI