昨天在完成微信项目,想经过微信公众号发布通知。然而把通知粘贴到adminsite中后发现全部html标签都被转译了,一堆文字落在一块儿甚是难看。因而不得很差好使用富文本编辑器。html
pip install django-ckeditor-updated https://github.com/django-ckeditor/django-ckeditor
其实照着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
(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()
截个图,看文档应该还有不少的自定义配置。有时间在继续研究吧