(Fork from https://bitbucket.org/semente/django-redator/ where 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.
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 urls.py
:
url(r'^_redator/', include('redator.urls', namespace='redactor', app_name='redator')),
You also have to create the database tables:
python manage.py syncdb --migrate
You can change the default settings by editing yours project settings.py
:
REDATOR_UPLOAD_TO = 'redator/%Y-%m/'
REDATOR_REDACTOR_OPTIONS = {
'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 http://imperavi.com/redactor/download/ 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.media }}
{{ 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 = ('//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js',)
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 });
});
</script>
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 http://imperavi.com/redactor/.