As a shortcut you can use a ckeditor.fields.HTMLField instead of
django.db.models.TextField in a model to automatically use the CKEditor
widget, like so:

fromdjango.dbimportmodelsfromckeditor.fieldsimportHTMLFieldclassSample(models.Model):# This will use a normal <textarea> when rendered in a (Model)Formplain_body=models.TextField(blank=True,verbose_name='plain version')# This will use CKEditor when rendered in a (Model)Formhtml_body=HTMLField(blank=True,verbose_name='HTML version')

Custom Configurations

Sometimes it's nice to be able to configure each CKEditor widget separately.
For example, you may want one field to have all the buttons on the toolbar,
but another field to only show bold/italic/underline buttons.

To do this, add additional configurations to your CKEDITOR_CONFIGS setting
like this:

When setting up the CKEditor widget in your Form class you can pass a
ckeditor_config keyword argument to specify the config to use:

classBlogPostForm(forms.Form):
title = forms.CharField()
# This field will render as a CKEditor with the 'simple_toolbar' config.subtitle = forms.CharField(
widget=CKEditor(ckeditor_config='simple_toolbar')
)
# This field will render as a CKEditor with the 'default' config.body = forms.CharField(
widget=CKEditor()
)

You cannot use the HTMLField shortcut if you want to specify a custom config
-- you must create a form.

Media URL

You can also customize the URL that django-ckeditor will look for the CKEditor
media at by adding CKEDITOR_MEDIA_URL to your settings.py file like this:

CKEDITOR_MEDIA_URL = '/static/third-party/ckeditor'

The default value is MEDIA_URL/ckeditor which is why the setup instructions
tell you to symlink it into your media/ directory.

Unlimited private and public hosted repositories. Free for small teams!