Django Redator

(django-redator is no longer supported!)

Django Redator (sic) is a application for the Django Web Framework to help you integrate Redactor, a beautiful and easy-to-use WYSIWYG HTML editor, into your projects.

Installing & Setup

Redator is available on Python Package Index (PyPI) so you can easily install the latest stable version of it using pip:

pip instal django-redator

On your Django project you must add redator to your INSTALLED_APPS and configure your

url(r'^_redator/', include('redator.urls', namespace='redactor', app_name='redator')),

You also have to create the database tables:

python syncdb --migrate

You can change the default settings by editing yours project

REDATOR_UPLOAD_TO = 'redator/%Y-%m/'
  'autoresize': False,
  'cleanup': True,
  'lang': 'en',
  'wym': True,


Unfortunately Redactor is not a Software Libre, so we could not pack it into this application. You have to get it at and copy the directory containing the files redactor.min.js and redactor.css to some directory specified at your STATICFILES_DIRS setting.

(Make sure you are able to access Redactor files on URL {{ STATIC_URL }}redactor/.)



Using it together your Django forms is easy as using a custom CharField widget:

from django import forms
from redator.widgets import RedactorEditor

class PostForm(forms.Form):
    title = forms.CharField()
    body = forms.CharField(widget=RedactorEditor(
          # redactor_options={
          #     'wym': False,
          #     'autoresize': True,
          # }

Remember to render the media assets in your HTML template:

{{ }}
{{ form }}


Django Redator also provides a widget to you use on ModelAdmin. It just add some CSS rules to display it better on Admin:

from redator.widgets import RedactorEditorAdmin

class MyModelAdmin(admin.ModelAdmin):
    formfield_overrides = {
        TextField: {'widget': RedactorEditorAdmin(
            attrs={'rows': 24}

    class Media:
        js = ('//',)

Troubleshooting and Known Issues

1. If the images you just uploaded are not showing on Redactor tab "Choose" from "Insert Image" modal, you might have to disable the cache of jQuery Ajax requests:

<script type="text/javascript">
 $(document).ready(function() {
   $.ajaxSetup({ cache: false });


Django Redator

Copyright (c) 2012-, Guilherme Gondim
Copyright (c) 2010-2012 Vladimir Sidorenko

Django Redator is Software Libre; you can redistribute it and/or modify it under the terms of the BSD (3-clause) License.

You should have received a copy of the BSD License along with this program; see the file LICENSE.


Redactor itself is created by Imperavi. You can read about it's licensing at