Django admin CKEditor integration.
Provides a RichTextField and CKEditorWidget utilizing CKEditor with image upload and browsing support included.
Install or add django-ckeditor to your python path.
Add
ckeditorto your INSTALLED_APPS setting.Copy the
media/ckeditordirectory into any directory within your media root. You can override the location in your settings (see below).Add a CKEDITOR_MEDIA_PREFIX setting to the project's
settings.pyfile. This setting specifies a URL prefix to the ckeditor media. Make sure to use a trailing slash:CKEDITOR_MEDIA_PREFIX = "/media/ckeditor/"
Add a CKEDITOR_UPLOAD_PATH setting to the project's
settings.pyfile. This setting specifies an absolute path to your ckeditor image upload directory. Make sure you have write permissions for the path, i.e.:CKEDITOR_UPLOAD_PATH = "/home/media/media.lawrence.com/uploads"
Add ckeditor url include to the project's
url.pyfile:(r'^ckeditor/', include('ckeditor.urls')),
The quickest way to add rich text editing capabilities to your models is to use the included RichTextField model field type. A CKEditor widget is rendered as the form field but in all other regards the field behaves as the standard Django TextField. For example:
from django.db import models
from ckeditor.fields import RichTextField
class Post(models.Model):
content = RichTextField()
Alernatively you can use the included CKEditorWidget as the widget for a formfield. For example:
from django import forms
from django.contrib import admin
from ckeditor.widgets import CKEditorWidget
from post.models import Post
class PostAdminForm(forms.ModelForm):
content = forms.CharField(widget=CKEditorWidget())
class Meta:
model = Post
class PostAdmin(admin.ModelAdmin):
form = PostAdminForm
admin.site.register(Post, PostAdmin)