Skip to main content

Integrates the Redactor Javascript WYSIWYG editor with Django.

Project description

This package helps integrate the Redactor Javascript WYSIWYG-editor in Django.

Installation

  1. Pip install: pip install django-redactoreditor (or add the redactor directory to your Python path)

  2. Add the redactor application to your INSTALLED_APPS setting.

Usage

The redactor app provides a Django widget called RedactorEditor. It is a drop-in replacement for any TextArea widget. Example usage:

from django import forms
from django.db import models

from redactor.widgets import RedactorEditor

class MyForm(forms.Form):
    about_me = forms.CharField(widget=RedactorEditor())

You can also customize any of the Redactor editor’s settings when instantiating the widget:

class MyForm(forms.Form):

    about_me = forms.CharField(widget=RedactorEditor(redactor_settings={
        'autoformat': True,
        'overlay': False
    }))

Django-redactor also includes a widget with some some customizations that make it function and look better in the Django admin:

class MyAdmin(admin.ModelAdmin):
    formfield_overrides = {
            models.TextField: {'widget': AdminRedactorEditor},
    }

Finally, you can connect a custom CSS file to the editable area of the editor:

class MyForm(forms.Form):
    about_me = forms.CharField(widget=RedactorEditor(
        redactor_css="styles/text.css")
    )

Paths used to specify CSS can be either relative or absolute. If a path starts with ‘/’, ‘http://’ or ‘https://’, it will be interpreted as an absolute path, and left as-is. All other paths will be prepended with the value of the STATIC_URL setting (or MEDIA_URL if static is not defined).

For the sake of convenience, there is also a form field that can be used that accepts the same inputs. This field can be used anywhere forms.CharField can and accepts the same arguments, but always renders a Redactor widget:

from redactor.fields import RedactorField

class MyForm(forms.Form):
    about_me = RedactorField(
        in_admin=True,
        redactor_css="styles/text.css",
        redactor_settings={'overlay': True}
    )

jQuery

The redactor javascript library requires jQuery 1.9 or better to function. By default, jQuery is included as part of the field and widget media. However, this can cause issues where other widgets or forms on a page are using a different version of jQuery. It is possible to exclude jQuery from the media of the redactor field and wdiget if you wish to handle JavaScript dependency management yourself:

class MyForm(forms.Form):
    about_me = RedactorField(include_jquery=False)

Templating

If you are using a redactor widget outside the admin, you’ll need to be sure that you render the form’s media. Redactor widgets need to include some CSS and JavaScript to work properly:

<form>
    {{ myform.media }}
    {{ myform.as_p }}
    <input type="submit"/>
</form>

Internationalization

If you wish to use Redactor in other languages, you only need to specify the lang setting. The correct javascript language files will be loaded automatically:

class MyForm(forms.Form):

    about_me = forms.CharField(widget=RedactorEditor(redactor_settings={
        'autoformat': True,
        'lang': 'es',
        'overlay': False
    }))

Django-Redactor is licensed under a Creative Commons Attribution-NonCommercial 3.0 license. However, the noncommercial restrictions of the license (e.g., Section 4(b)) are waived for any user who purchases a legitimate commercial license to the redactor.js library. Open source users are still under the noncommercial clause, but legitimate Imperavi license holders are not.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-redactoreditor-1.2.6.tar.gz (208.3 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file django-redactoreditor-1.2.6.tar.gz.

File metadata

File hashes

Hashes for django-redactoreditor-1.2.6.tar.gz
Algorithm Hash digest
SHA256 b8a7cb4b6a67c30aef52e8d1a158cdf09b97ea7ea3a6448125b3ccfa2cf02e34
MD5 6f6ac5d0b20d685ebfee62e0c0e737bf
BLAKE2b-256 edefe92e4be9558f1cea4ba03f38c938781d33e5f26bac158cfe325f4ede96f7

See more details on using hashes here.

File details

Details for the file django-redactoreditor-1.2.6.macosx-10.8-x86_64.exe.

File metadata

File hashes

Hashes for django-redactoreditor-1.2.6.macosx-10.8-x86_64.exe
Algorithm Hash digest
SHA256 111933c1998132d42ccdbc398486ddfa85ef86a3ef147e79976a5c4ab9efcb43
MD5 04770855814082c8427d726b76a19d76
BLAKE2b-256 4edc1bd5ccada31d62107aac4bb660b5872a48b8a21eeab319965ebc34ae4ec0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page