问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在 Django 后台 admin 中集成一个富文本编辑器

发布网友 发布时间:2022-04-18 07:53

我来回答

2个回答

懂视网 时间:2022-04-18 12:14

最近由于需要在django admin中使用到富文本编辑器,由于我比较喜欢CKEditor富文本编辑器,于是就有了这篇文章,下面这篇文章主要给大家介绍了在django中轻松使用富文本编辑器CKEditor的方法,需要的朋友可以参考下。

前言

django是一个容易快速上手的web框架,用它来创建内容驱动型的网站(比如独立博客)十分方便。遗憾的是,django并没有提供官方的富文本编辑器,而后者恰好是内容型网站后台管理中不可或缺的控件。ckeditor是一款基于javascript,使用非常广泛的开源网页编辑器。它可以和多种编程语言相结合,python当然也不例外。本文就来介绍一下如何在基于django博客系统如何完美地用上ckeditor。

使用方法

1、安装

pip install django-ckeditor

2、将‘ckeditor'settings.py中的INSTALLED_APPS

3、由于djang-ckeditor在ckeditor-init.js文件中使用了JQuery,所以要在settings.py中设置CKEDITOR_JQUERY_URL来指定JQuery库的路径,例如:

CKEDITOR_JQUERY_URL ='https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js'

4、设定STATIC_ROOT,执行python manage.py collectstatic,将CKEditor需要的媒体资源拷入STATIC_ROOT指定的路径中。

STATIC_ROOT = os.path.join(BASE_DIR,'static/')

5、

from django.db import models
from ckeditor.fields import RichTextField
class Blog(models.Model):
 title = models.CharField(max_length=50,verbose_name="标题")
 content = RichTextField(blank=True,null=True,verbose_name="内容")

 def __unicode__(self):
 return self.name

效果:

文件上传

1、在settings.py中的INSTALLED_APPS中添加ckeditor_uploader

2、CKEditor使用Django的存储API,默认使用Django的文件存储,会用到MEDIA_ROOT和MEDIA_URL,需要在settings.py中定义,此外还可以指定CKEDITOR_UPLOAD_PATH,它位于MEDIA_ROOT下:

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media/')
CKEDITOR_UPLOAD_PATH = 'uploads/'

3、在项目的urls.py中添加CKEditor的URL映射

url(r'^ckeditor/', include('ckeditor_uploader.urls')),

如果不加,可能会出现以下错误:

4、(可选项) 在settings.py中加入CKEDITOR_IMAGE_BACKEND ,使能thumbnails,例如:

CKEDITOR_IMAGE_BACKEND = 'PIL'
from ckeditor_uploader.fields import RichTextUploadingField
class Post(models.Model):
 content = RichTextUploadingField()

总结

热心网友 时间:2022-04-18 09:22

一、下载安装
python setup.py install
二、
1.将tinymce/static/tiny_mce文件夹放到your_project/static目录下;
2.将tinymce文件夹放到your_project目录下
三、在urls.py文件中加入:
url(r'^tinymce/',include('tinymce.urls')),

四、在settings.py文件中加入:
INSTALLED_APPS = (
'tinymce',


五、在settings.py文件中加入:
TINYMCE_JS_URL=MEDIA_URL+'/static/tiny_mce/tiny_mce_src.js'
TINYMCE_JS_ROOT=MEDIA_ROOT+'/static/tiny_mce/'

六、在settings.py文件中加入:
TINYMCE_DEFAULT_CONFIG = {

'theme': "advanced",
'theme_advanced_toolbar_location' : "top",
'theme_advanced_toolbar_align' : "left",
‘width’: 600,
‘height’: 400,
}

七、修改models.py文件
from your_project.tinymce import models as tinymce_models
class Post(models.Model):
body=tinymce_models.HTMLField()
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
社保到期了还有时效吗 2023年河北退休人员认证时间 社保待遇资格认证有效期怎么认证 ...语法How long does it take you to get to school? 此句中“it... 海信电视初始设置后无信号 设置海信电视恢复出厂设置搜不到电视信号 海信一族电视大锅恢复设置没信号怎么? 如何用c程序读取txt文件? 成都膨胀螺丝型号 云南农信个人如何开通手机银行 武汉贝斯特通信集团股份有限公司怎么样? 如何将通讯录导入A1680手机 如何将诺基亚6300手机通讯录全部导入到摩托罗拉A1600 苹果手机来电报姓名怎么关掉 _百度问一问 问道里抽奖得到的物品到哪去领啊 应用宝3次抽奖,抽到了怎么领 这个抽奖活动中奖后没有弹出完善信息页面,让我怎么领取啊??? 抽奖得的抢在哪领 广东的丹霞山和白云山哪个更好玩 丹霞山的风景有什么特色 丹霞山旅游风景区门票多少钱 请问django如何接入tinymce富文本编辑器? 我想问一下怎样才能冻结对方的? 怎么帮别人冻结 我想问一下怎样才能冻结对方的? 怎么申请冻结对方 怎样冻结别人的? 怎样冻结别人的? 冻结别人的怎么冻结 净利润为负的公司,分析其盈利能力有意义吗? 就是能把人相片变老的软件 有谁知道那个变老软件吗? 有没有让人变老的软件啊?加分 朋友圈慢慢变老的软件是什么软件 qq飞车手游超能竞速赛怎么玩 qq飞车超能竞速 QQ飞车手游超能竞速赛有的地图明明我跑第一,却变成了最后一个,真是邪门 QQ飞车超能竞速赛每局结束的积分有啥用 qq飞车SSC超级联赛竞速比赛图都有什么? QQ飞车游戏中竞速的技巧有哪些 如何修改qq空间访问权限 QQ飞车手游怎么获得紫玉宝箱的钥匙 QQ飞车超级联赛 如果跑竞速的人去道具车队积分会显示么? 还有就是有人说道具7天可以跑1320分 可能么? 怎么改QQ空间里的访问权限 如何更改QQ空间的访问权限? - 信息提示 qq空间不能访问,如何更改设置权限 怎样修改别人的QQ空间的访问权限 怎么改QQ权限 C罗跟拉莫斯的关系