django-redator /

Filename Size Date modified Message
redator
59 B
1.6 KB
151 B
3.4 KB
1.6 KB

Django Redator

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 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,
}

Redactor

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/.)

How-To

Forms

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 }}

Admin

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',)

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 });
 });
</script>

License

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

Redactor itself is created by Imperavi. You can read about it's licensing at http://imperavi.com/redactor/.

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.