django-ckeditor 使用

     昨天在完成微信項目,想經過微信公衆號發佈通知。然而把通知粘貼到adminsite中後發現全部html標籤都被轉譯了,一堆文字落在一塊兒甚是難看。因而不得很差好使用富文本編輯器。html

1、源

pip install django-ckeditor-updated

https://github.com/django-ckeditor/django-ckeditor

2、配置方式

    其實照着demo作就能夠了,不過有幾點須要注意的前端

(1)urls.py中不要忘記配置media路徑python

from django.conf.urls import patterns, include, url
from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'rickck.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),
    url(r'^ckeditor/', include('ckeditor.urls')),
    url(r'^admin/', include(admin.site.urls)),
)+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)


urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

(2) settings.py中須要配置一個相應的路徑jquery

from unipath import Path
PROJECT_DIR = Path(__file__).parent.parent

#STATIC_ROOT = PROJECT_DIR.child('static')
STATIC_URL = '/static/'



MEDIA_URL = '/media/'
#STATIC_ROOT = os.path.join(BASE_DIR, 'ck_static')
#MEDIA_ROOT = os.path.join(BASE_DIR, 'ck_media')
STATIC_ROOT = PROJECT_DIR.child('ck_static')
MEDIA_ROOT = PROJECT_DIR.child('ck_media')

CKEDITOR_UPLOAD_PATH = "uploads/"
CKEDITOR_IMAGE_BACKEND = "pillow"
CKEDITOR_JQUERY_URL = 'js/jquery.js'


STATICFILES_DIRS = (
    PROJECT_DIR.child('static'),
)

注意:demo中配置的路徑是 tmp目錄,我把相應路徑指到了項目裏面git

(3)靜態文件收集github

若是項目把全部多靜態文件都整理到項目中,那麼運行下列命令
django

python  manage.py collectstatic


3、使用

(1)models中定義model,不得不說django-ckeditor的確很好用,直接使用RichTextField就ok了微信

from django.db import models

from ckeditor.fields import RichTextField


class ExampleModel(models.Model):
    content = RichTextField()

(2)若是須要經過adminsite管理model,能夠定義admin.py編輯器

from . import models

from django.contrib import admin


admin.site.register(models.ExampleModel)

(3)form也支持呦,有些朋友確定還要經過前端編輯文本,使用django-ckeditor也很是容易url

from django import forms

from ckeditor.fields import RichTextFormField


class CkEditorForm(forms.Form):

    content = RichTextFormField()


4、有圖有真相

    截個圖,看文檔應該還有不少的自定義配置。有時間在繼續研究吧

相關文章
相關標籤/搜索