In this tutorial, we will learn how to integrate Summernote WYSIWYG Editor in Django Application.
Sample Project
$ mkdir summernote_django && cd summernote_django
$ pipenv install django django-summernote
$ pipenv shell
$ django-admin startproject config .
$ python manage.py startapp posts
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=255)
content = models.TextField()
def __str__(self):
return self.title
INSTALLED_APPS = [
...
'posts.apps.PostsConfig',
'django_summernote',
]
MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR, 'media/'
X_FRAME_OPTIONS = 'SAMEORIGIN'
SUMMERNOTE_THEME = 'bs4' # Use Bootstrap4 theme
from django.urls import path, include
urlspatterns = [
...
path('summernote/', include('django_summernote.urls')),
...
]
$ python manage.py makemigrations
$ python manage.py migrate
from django.contrib import admin
from django_summernote.admin import SummernoteModelAdmin
from .models import Post
class PostAdmin(SummernoteModelAdmin):
summernote_fields = ('content', )
admin.site.register(Post, PostAdmin)
Navigate to Django admin and click on Add Post, you should see the Summernote editor on the content field.
from django import forms
from django_summernote.widgets import SummernoteWidget
class PostForm(forms.ModelForm):
content = forms.CharField(widget=SummernoteWidget())
class Meta:
model = Post
fields = ('title', 'content')
{{ content|safe }}
That's it, we have integrated WYSIWYG Editor in our Django application.
Share this: