This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

django-wysiwyg-redactor is a lightweight responsive wysiwyg editor for Django

Project Description

Screenshot

What’s that

django-wysiwyg-redactor is a text editor application for Django, using Redactor WYSIWYG editor

Dependency

  • Pillow or PIL # for image upload

Getting started

  • Install django-wysiwyg-redactor:

pip install django-wysiwyg-redactor

  • Add ‘redactor’ to INSTALLED_APPS.
INSTALLED_APPS = (
    # ...
    'redactor',
    # ...
)
  • Add url(r’^redactor/’, include(‘redactor.urls’)), to urls.py
urlpatterns = [
    # ...
    url(r'^redactor/', include('redactor.urls')),
    # ...
]
  • Add default config in settings.py
REDACTOR_OPTIONS = {'lang': 'en'}
REDACTOR_UPLOAD = 'uploads/'

More redactor settings.

Using in model

from django.db import models
from redactor.fields import RedactorField

class Entry(models.Model):
    title = models.CharField(max_length=250, verbose_name=u'Title')
    short_text = RedactorField(verbose_name=u'Text')

or use custom parameters:

short_text = RedactorField(
    verbose_name=u'Text',
    redactor_options={'lang': 'en', 'focus': True},
    upload_to='tmp/',
    allow_file_upload=True,
    allow_image_upload=True
)

Using only in Django Admin

from django import forms
from redactor.widgets import RedactorEditor
from blog.models import Entry

class EntryAdminForm(forms.ModelForm):
    class Meta:
        model = Entry
        widgets = {
           'short_text': RedactorEditor(),
        }

class EntryAdmin(admin.ModelAdmin):
    form = EntryAdminForm

RedactorEditor takes the same parameters as RedactorField.

Using Plugins

Download the plugin you want or create a custom plugin.

Then:

from django.db import models
from redactor.fields import RedactorField

class Entry(models.Model):
    title = models.CharField(max_length=250, verbose_name=u'Title')
    short_text = RedactorField(
        verbose_name=u'Text',
        # for example, if you downloaded the 'table' plugin:
        redactor_options={'plugins': ['table']}
    )

OR (on settings.py):

REDACTOR_OPTIONS = {'lang': 'en', 'plugins': ['table']}

Important: if you set a plugin called “table”, you must create/paste the “table.js” on YOUR_STATIC_FILES_FOLDER/redactor/plugins/table.js

Upload Handlers

SimpleUploader - The Standard Uploader. Will upload your file to REDACTOR_UPLOAD.

UUIDUploader - This handler will replace the original file name for an UUID.

DateDirectoryUploader - This handler saves the file in a directory based on the current server date.

Usage:

For example, if I want to use the DateDirectoryUploader handler, I will put this on settings.py:

REDACTOR_UPLOAD_HANDLER = 'redactor.handlers.DateDirectoryUploader'

Upload permissions

By default django-wysiwyg-redactor uses staff_member_required decorator from django.contrib.admin.views.decorators package to control access to dispatch method.

To use custom authentication decorator, set REDACTOR_AUTH_DECORATOR to anything else, eg. if every authenticated user should have permissions to upload files/images/etc.:

REDACTOR_AUTH_DECORATOR = 'django.contrib.auth.decorators.login_required'

File Storages

django-wysiwyg-redactor defaults to using the default media storage for your Django application.

This can be overridden to use a different storage backend with this settings.py variable:

REDACTOR_FILE_STORAGE = 'my_site.file_storages.StorageClass'

Information on writing a custom storage backend is here in the Django documentation.

Other third-party libraries exist to provide storage backends for cloud object storages (e.g. django-cumulus for Rackspace/OpenStack or django-storages for Amazon S3). For example, following should be enough to store all your files and images to Amazon S3, even if the rest of the application uses different storage.

REDACTOR_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = '...'
AWS_SECRET_ACCESS_KEY = '...'
AWS_STORAGE_BUCKET_NAME = '...'

NOTE: Soon we will have a better documentation.

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am ‘Add some feature’
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request =]

Made by robots, or what?

Awesome people, you should see the AUTHORS file.

About the licensing

You may want to see the LICENSE file.

Release History

Release History

This version
History Node

0.5.1

History Node

0.5.0

History Node

0.4.9.1

History Node

0.4.9

History Node

0.4.8.1

History Node

0.4.8

History Node

0.4.7

History Node

0.4.6

History Node

0.4.5.1

History Node

0.4.5

History Node

0.4.4.1

History Node

0.4.4

History Node

0.4.3.2

History Node

0.4.3.1

History Node

0.4.3

History Node

0.4.2.1

History Node

0.4.2

History Node

0.4.1

History Node

0.4.0

History Node

0.3.9.1

History Node

0.3.9

History Node

0.3.8.2

History Node

0.3.8.1

History Node

0.3.8

History Node

0.3.7

History Node

0.3.6

History Node

0.3.5

History Node

0.3.4

History Node

0.3.3

History Node

0.3.2

History Node

0.3.1

History Node

0.3.0

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
django_wysiwyg_redactor-0.5.1-py2-none-any.whl (167.8 kB) Copy SHA256 Checksum SHA256 py2 Wheel Apr 1, 2017
django-wysiwyg-redactor-0.5.1.tar.gz (152.0 kB) Copy SHA256 Checksum SHA256 Source Apr 1, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting