Skip to content

yuchant/django-cleditor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What is it?

A simple django app that makes using an WYSIWYG editor (CLEditor) extremely easy. Optionally includes a mixin that activates file upload handling.

Screenshot

Installation instructions

Download and add django-cleditor to your packages however you wish.

  • The easiest method is to use pip: pip install django-cleditor
  • Add cleditor to your INSTALLED_APPS
  • Run the python manage.py collectstatic management command to ... collect the static files.
  • Use cleditor.widgets.CLEditorWidget anywhere a django form widget is expected.
  • For admin upload handling subclass cleditor.admin.CLEditorUploadAdmin and use cleditor.widgets.CLEditorUploadWidget instead.

Usage instructions

Editor only

This package supplies a CLEditorWidget form widget in cleditor.widgets that you can use anywhere the django forms framework expects a widget.

To replace all textfields in a ModelAdmin with CLEditors simply paste two lines:

from django.db import models
from cleditor.widgets import CLEditorWidget

class MyModelAdmin(admin.ModelAdmin):
    formfield_overrides = { models.TextField: {'widget': CLEditorWidget()}}

Note: If you need finer control over which textfields get overriden, look into ModelAdmin.formfield_for_dbfield

You're done!

Easy admin upload handler

To allow users to upload via a the insert image widget, you must use the CLEditorUploadWidget widget and you must subclass the included ModelAdmin which adds a fully csrf protected upload handler to your admin site.

You can specify a new upload directory by adding an upload_to attribute to the ModelAdmin

from django.db import models
from cleditor.widgets import CLEditorUploadWidget
from cleditor.admin import CLEditorUploadAdmin

class MyModelAdmin(CLEditorUploadAdmin):
    # upload_to = 'cleditorupload/' # default 
    formfield_overrides = { models.TextField: {'widget': CLEditorUploadWidget()}}

Stand alone uploader (non admin)

To upload images without the admin panel, you'll have to map a URL to the upload handler and pass in your custom handler URL to the widget.

# urls.py

from cleditor.admin import cleditor_upload_handler

urlpatterns = patterns('',
	(r'^my-upload-handler/$', cleditor_upload_handler, {'upload_to': 'my_upload_directory'}),
)
# widget instantiation

class MyForm(forms.Form):
    myfield = forms.TextField(widget=CLEditorUploadAdmin(upload_url='path-to-my-upload-handler'))

Credits

About

Django widget for CLEditor

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published