NicEdit widget for Django

django-nicedit widget on admin page

NicEdit widget for django with image upload feature.

NicEdit home:
django-nicedit on PyPI:
django-nicedit on GitHub:


To get the latest stable release from PyPi:

pip install django-nicedit

To get the latest commit from GitHub:

pip install -e git+git://

Add nicedit to INSTALLED_APPS:


Add nicedit URLs to

urlpatterns = patterns('',
    url(r'^nicedit/', include('nicedit.urls')),

Migrate database:

python migrate nicedit

MEDIA_ROOT should be specified, example:

MEDIA_ROOT = os.path.join(os.path.dirname('__file__'), '../media')
MEDIA_URL = '/media/'

Add to urls configuration:

from django.conf.urls.static import static
from django.conf import settings

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)


from django import forms

from nicedit.widgets import NicEditWidget

class MessageForm(forms.Form):
    message = forms.CharField(
        widget=NicEditWidget(attrs={'style': 'width: 800px;'}))

from django.shortcuts import render

from .forms import MessageForm

def home(request):
    form = MessageForm()
    return render(request, 'home.html', {'form': form})


<!DOCTYPE html>
<html lang="en">
        <meta charset="utf-8">
        <title>NicEdit widget</title>
        {{ }}
        <form action='.' method='post'>
            {% csrf_token %}
            {{ form.message }}
            <button type="submit">Submit</button>

Usage in admin:

# -*- coding: utf-8 -*-
from django import forms
from django.contrib import admin

from nicedit.widgets import NicEditAdminWidget

from .models import Item

class ItemAdminForm(forms.ModelForm):

    class Meta:
        model = Item
        widgets = {
            'text': NicEditAdminWidget(
                attrs={'style': 'width: 610px;'},
                js_options={"buttonList": [
                    'save', 'bold', 'italic', 'underline', 'left', 'center',
                    'right', 'justify', 'ol', 'ul', 'fontSize',  # 'fontFamily',
                    'fontFormat', 'indent', 'outdent', 'image', 'upload', 'link',
                    'unlink', 'forecolor', 'bgcolor', 'xhtml']}

class ItemAdmin(admin.ModelAdmin):

    form = ItemAdminForm

See testproject for example.

Licensed under CC BY-SA 3.0