django-ckeditor使用
django-ckeditor
1 安装
pip install ckeditor
2 配置
INSTALLED_APPS中添加
'ckeditor',修改写入字段的格式
主题相关配置(settings)
CKEDITOR_CONFIGS = {
'default': {
'toolbar': 'full',
'height': 300,
'width': 600,
'tabSpaces': 4,
'extraPlugins': 'codesnippet', # 配置代码插件
}
}
静态文件相关配置(图片)
1 INSTALLED_APPS 中添加
'ckeditor_uploader', 2 文件相关
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media') CKEDITOR_UPLOAD_PATH = 'Article_media'
URLconfig
- 引入包
from django.conf.urls import url,include
from django.views.static import serve
- urlpatterns
urlpatterns = [
...
url(r'^ckeditor/', include('ckeditor_uploader.urls'),),
url(r'^media/(?P<path>.*)', serve, {"document_root": develop.MEDIA_ROOT}),
...
] 或 urlpatterns = [
...
url(r'^ckeditor/', include('ckeditor_uploader.urls'),),
...
] + static(settings.MEDIA_URL, documnets_root = settings.MEDIA_ROOT)
3 使用
1 通用的方式,可以用在前台页面也可以用在后台管理页面
# 重写admin/Xadmin表单,在form添加装饰,而不需要修改对象模型,需要重写clean 方法,将表单拿到的数据替换成需要模型中真正存在的字段。
from ckeditor_uploader.widgets import CKEditorUploadingWidget
class ArticleAdminForm(forms.ModelForm):
# 模型中并不存在 content_ck 只是在表单中存在, 将在clean 中 提换,将页面数据和模型分离开 可以做一些其他操作
content_ck = forms.CharField(widget=CKEditorUploadingWidget(), label='正文', required=False)
# 模型中的真实字段
content = forms.CharField(widget=forms.HiddenInput(), required=False)
class Meta:
model = Article
fields = (
'category', 'tag', 'desc', 'title',
'editor_type', 'content', 'content_ck',
'status'
)
def clean(self):
content = self.cleaned_data.get('content_ck')
if not content:
self.add_error('content_ck', '必填项!')
return
self.cleaned_data['content'] = content
return super().clean()
2 在Admin/Xadmin后台使用
直接修改模型字段将全部的事情交给admin 虽然省事,不灵活也不利于后期开发维护
from ckeditor.fields import RichTextField
class Article(models.Model):
title = models.CharField(max_length=254, unique=True)
body = RichTextField()
def __str__(self):
return self.title
django-ckeditor使用的更多相关文章
- django + ckeditor + 七牛云,图片上传到七牛云
传送门 本人使用的是 Django 的自带的管理后台,安装 ckeditor 富文本编辑器后,上传图片的时候直接传到七牛云的.
- Django ckeditor增加编辑代码 功能
前言 使用ckeditor这个组件的时候 对于长写博客的同学当然希望能有 增加代码这个功能按钮 而这个按钮 需要自己配置 我们的编辑器自然需要添加代码块的功能. 需要用到插件codesnippet,c ...
- Django创建完全独立的APP
我们之前已经完成了项目的结构搭建,但是,在Django当中,我们强调的一个重要概念是app,比如Django自带的admin就是一个成功的app典范,那么我们应该如果整理自己的项目结构,才能让我们的a ...
- Django博客开发-数据建模与样式设定
开发流程介绍 之前Django的学习过程当中已经把基本Django开发学完了,现在以Django 的博客项目完成一遍课程的回顾和总结.同时来一次完整开发的Django体验. 一个产品从研究到编码我们要 ...
- django下的ckeditor 5.0 文本编辑器上传功能。
完整的后台界面怎么可以没有文本编辑器,但是django的admin界面很疑惑,没有自带文本编辑器,好在网上有不少成型的库可以用 我用的是ckeditor编辑器,安装和配置我引用别人的博客 这篇博客配置 ...
- Django中使用CKEditor代码高亮显示插件Code Snippet
Django使用CKEditor可以安装django-ckeditor这个模块,具体步骤可按照这里进行:http://www.nanerbang.com/article/2/ 我在富文本编辑器中想使用 ...
- 在django中集成ckeditor富文本
目前用的比较多的富文本插件有百度的ueditor.ckeditor.kindeditor等,其中ueditor和kindeditor比较美观,ckeditor的皮肤较少.但是ueditor加载较慢,k ...
- ckeditor django admin 中使用
ckeditor settings配置 ############ # CKEDITOR # ############ MEDIA_ROOT = os.path.join(BASE_DIR, 'medi ...
- django使用ckeditor上传图片
1.在模型类中设置字段为富文本类型,这里需要注意引入的是RichTextUploadingField,以允许上传图片,需要和RichTextField区分开 from ckeditor_uploade ...
- Django添加ckeditor富文本编辑器
源码 https://github.com/django-ckeditor/django-ckeditor 通过pip安装. pip3 install django-ckeditor pip3 ins ...
随机推荐
- pip使用镜像的方法
http://e.pypi.python.org/这个就是官网了,清华大学提供的 建议非清华大学校内的使用这个镜像: http://e.pypi.python.org/simple(这也是一个http ...
- 二 SSH整合:Spring整合Hibernate,无障碍整合&无核心配置整合,Hibernate模版常用方法,
重建SSH项目 java项目可以直接复制,但是web项目除了改名字还要该配置,如下: 方式一:无障碍整合:带Hibernate配置文件 <?xml version="1.0" ...
- 《React后台管理系统实战 :一》:目录结构、引入antd、引入路由、写login页面、使用antd的form登录组件、form前台验证、高阶函数/组件
实战 上接,笔记:https://blog.csdn.net/u010132177/article/details/104150177 https://gitee.com/pasaulis/react ...
- Mybatis+Spring的整合练习
一.建立数据库.建表 二.新建maven项目 三.添加依赖 <dependencies> <dependency> <groupId>junit</group ...
- ADV-299 宰羊 (java,过了30%)
问题描述 炫炫回了内蒙,肯定要吃羊肉啦,所有他家要宰羊吃. 炫炫家有N只羊,羊圈排成一排,标号1~N.炫炫每天吃掉一只羊(这食量!其实是放生啦),吃掉的羊的邻居会以为它被放生了,然后又会告诉他们的邻居 ...
- VueCli3 项目结构和具体作用
- Linux centosVMware 命令 lvm、磁盘故障小案例
一.lvm命令 LVM:逻辑分区管理,可基于动态的扩展缩小硬件设备的使用空间,注意:lvm磁盘复杂,由于使用lvm,数据丢失恢复起来有一定风险.概念:pv.VG.lvpv(物理卷,有pp基本单位构成) ...
- Android中ListView结合CheckBox判断选中项
本文主要实现在自定义的ListView布局中加入CheckBox控件,通过判断用户是否选中CheckBox来对ListView的选中项进行相应的操作.通过一个Demo来展示该功能,选中ListView ...
- CF-diary
(做题方式:瞟题解然后码) 1238E. Keyboard Purchase \(\texttt{Difficulty:2200}\) 题意 给你一个长度为 \(n\) 的由前 \(m\) 个小写字母 ...
- LINQ---查询语法和方法语法
namespace ConsoleApplication45 { class Program { static void Main(string[] args) { , , , , , , }; va ...