NicEdit widget for Django

NicEdit widget for django with image upload feature.
NicEdit home: http://nicedit.com/ django-nicedit on PyPI: https://pypi.python.org/pypi/django-nicedit/ django-nicedit on GitHub: https://github.com/nanvel/django-nicedit
Installation
To get the latest stable release from PyPi:
pip install django-nicedit
To get the latest commit from GitHub:
pip install -e git+git://github.com/nanvel/django-nicedit.git#egg=nicedit
Add nicedit to INSTALLED_APPS:
INSTALLED_APPS = (
...,
'south',
'nicedit',
)
Add nicedit URLs to urls.py:
urlpatterns = patterns('',
...
url(r'^nicedit/', include('nicedit.urls')),
)
Migrate database:
python manage.py 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)
Usage
forms.py:
from django import forms
from nicedit.widgets import NicEditWidget
class MessageForm(forms.Form):
message = forms.CharField(
widget=NicEditWidget(attrs={'style': 'width: 800px;'}))
views.py:
from django.shortcuts import render
from .forms import MessageForm
def home(request):
form = MessageForm()
return render(request, 'home.html', {'form': form})
template:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>NicEdit widget</title>
{{ form.media }}
</head>
<body>
<form action='.' method='post'>
{% csrf_token %}
{{ form.message }}
<button type="submit">Submit</button>
</form>
</body>
</html>
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