# pip install django-ckeditor # pip insatll pillow # settings.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app01.apps.App01Config', 'ckeditor', 'ckeditor_uploader' ] CKEDITOR_UPLOAD_PATH = 'upload/' # 指定上传的目录 CKEDITOR_CONFIGS = { 'default': { 'language': 'zh-cn', # 指定使用的语言 'width': 'auto', 'height': '150px', 'image_previewText': '', 'tabSpaces': 4, 'toolbar': 'Custom', 'toolbar_Custom': [ ['Bold', 'Italic', 'Underline', 'Format', 'RemoveFormat'], ['NumberedList', 'BulletedList'], ['Blockquote', 'CodeSnippet'], ['Image', 'Link', 'Unlink'], ['Maximize'] ], 'extraPlugins': ','.join(['codesnippet', 'uploadimage', 'widget', 'lineutils']), }, 'custom': { # models.py content = RichTextUploadingField(config_name='custom') 在model中通过名称指定使用 } } # 在一级urls.py中配置 url(r'^ckeditor/', include('ckeditor_uploader.urls')), # 在models.py中引用 RichTextField不支持上传图片, RichTextUploadingField支持上传图片 from ckeditor.fields import RichTextField from ckeditor_uploader.fields import RichTextUploadingField class Blog(models.Model): name = models.CharField(verbose_name='名称', max_length=25) author = models.CharField(verbose_name='作者', max_length=25) context = RichTextField() context2 = RichTextUploadingField(default='') def __str__(self): return self.name # 在setting.py中配置静态文件 STATIC_URL = '/static/' STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')] MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'static/media') # 一级url中 from django.conf.urls.static import static from django.conf import settings urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) # 修改ckeditor_upload/urls.py # django-ckeditor默认只允许管理员(staff_member)上次图片, 普通用户使用需要将装饰器替换成login_required """ urlpatterns = [ url(r"^upload/", staff_member_required(views.upload), name="ckeditor_upload"), url( r"^browse/", never_cache(staff_member_required(views.browse)), name="ckeditor_browse", ), ]""" urlpatterns = [ url(r"^upload/", login_required(views.upload), name="ckeditor_upload"), url( r"^browse/", never_cache(login_required(views.browse)), name="ckeditor_browse", ), ]
浙公网安备 33010602011771号