Django-editor
Allows pluggable WYSIWYG editors in django admin without hard dependencies.
Currently supported editors (both optional):
Installation
-
Install with pip:
pip install django-editor
-
(optional) Add imperavi or tinymce to your INSTALLED_APPS in settings.py:
INSTALLED_APPS = ( ... # Imperavi (or tinymce) rich text editor is optional 'imperavi', )
Usage
editor package gives you the following replacement classes:
- django.forms.widgets.Textarea => editor.EditorWidget (becomes ImperaviWidget or TinyMCE)
- django.contrib.admin.ModelAdmin => editor.EditorAdmin (becomes ImperaviAdmin or stays as ModelAdmin)
- django.contrib.admin.StackedInline => editor.EditorStackedInline (becomes ImperaviStackedInline or stays as StackedInline)
Here are some examples on how to easily turn your Textareas into WYSIWYG editors:
# admin.py from django.db import models from django.contrib import admin from editor.admin import EditorAdmin, EditorWidget, EditorStackedInline class MyInlineAdmin(EditorStackedInline): # StackedInline example model = Model1 class MyModel2Admin(EditorAdmin): # ModelAdmin example inlines = [MyInlineAdmin] admin.site.register(Model2, MyModel2Admin) class MyModel3Admin(admin.ModelAdmin): formfield_overrides = { models.TextField: {'widget': EditorWidget}, } admin.site.register(Model3, MyModel3Admin)
Credits
- django-imperavi
- django-tinycme
- modern-package-template
- django-newsletter for providing pluggable editor code idea