Django Summernote

django-summernote интегрирует легкий и современный WYSIWYG редактор Summernote в Django.

Установка

1# Установка пакета
2pip install django-summernote
1# Или через Poetry
2poetry add django-summernote

Настройка

1# settings.py
2INSTALLED_APPS = [
3    'django_summernote',
4]
5
6# urls.py
7urlpatterns = [
8    path('summernote/', include('django_summernote.urls')),
9]

Использование в админке

1from django_summernote.admin import SummernoteModelAdmin
2
3@admin.register(Article)
4class ArticleAdmin(SummernoteModelAdmin):
5    summernote_fields = ('content',)

В формах

1from django_summernote.widgets import SummernoteWidget
2
3class ArticleForm(forms.ModelForm):
4    class Meta:
5        model = Article
6        fields = ['title', 'content']
7        widgets = {
8            'content': SummernoteWidget(),
9        }

Кастомизация редактора

 1# settings.py
 2SUMMERNOTE_CONFIG = {
 3    'iframe': True,
 4    'summernote': {
 5        'width': '100%',
 6        'height': '400',
 7        'toolbar': [
 8            ['style', ['style']],
 9            ['font', ['bold', 'underline', 'clear']],
10            ['color', ['color']],
11            ['para', ['ul', 'ol', 'paragraph']],
12            ['table', ['table']],
13            ['insert', ['link', 'picture']],
14            ['view', ['fullscreen', 'codeview', 'help']],
15        ],
16    },
17}

FAQ

Q: Как настроить toolbar?
A: Используй SUMMERNOTE_CONFIG в settings.py.

Q: Можно ли загружать файлы?
A: Да, Summernote поддерживает загрузку изображений.