Skip to content

smaccona/django-wysiwyg-redactor

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A lightweight wysiwyg editor for Django

Downloads

Screenshot

image

What's that

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

Sponsored by Mess Marketing, we use the latest version of redactorjs, always up-to-date.

Dependence

  • Django >= 1.3 # for static files
  • Pillow or PIL # for image upload

Getting started

  • Install django-wysiwyg-redactor:

`pip install django-wysiwyg-redactor`

  • Add 'redactor' to INSTALLED_APPS.
  • Add url(r'^redactor/', include('redactor.urls')), to urls.py
  • 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 parametrs:

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 for only admin interface

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'

File Storages

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

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

REDACTOR_FILE_STORAGE = 'my_site.file_storages.storage_instance'

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

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 =]

Who is behind this?

Awesome people, you should see the AUTHORS file.

And our awesome sponsor:

Mess Marketing from Chicago, IL jshedd@thisismess.com thisismess.com @etchalon

Packages

No packages published

Languages

  • JavaScript 79.6%
  • CSS 17.3%
  • Python 3.0%
  • Makefile 0.1%