Django集成TinyMCE(admin后台+前台)
Django版本1.11,操作系统windows 7,在pycharm的terminal中使用pip install django-tinymce下载tinymce(前提是装的python里有pip功能),当然也可以手动下载好后python setup.py install进行安装。
在网上找了好多资料,有说什么新创建个textarea.js什么的云云,还要新创建个static文件什么的,感觉挺麻烦的,因此把我的方法分享给大家。
找到使用pip安装的django-tinymce,如果没有更改路径的话,应该就是在装的python文件里的Lib->site-packages(我的是D:\Python27\Lib\site-packages),有一个tinymce文件夹。打开这个文件夹,发现这其实就是一个django模块有没有。既然是django模块,那么我们在我们自己的project里引用这个模块不就行了?

具体步骤:
1. 将tinymce文件夹复制到你自己的project里面,tinymce相当于是一个APP;
2. 在project文件夹的setting里注册tinymce:在settings.py里找到INSTALLED_APPS;
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'tinymce',
)
3. 上面两步已经将tinymce成功引入了project,那么怎么用呢?打开你自己的app,比如我的 是blog/models.py,使用from tinymce.models import HTMLField,这里HTMLField就为我们提供了一个富文本编辑器。下面给出一个模块例子:
# -- coding: utf-8 --
from django.db import models
from django.contrib import admin
from tinymce.models import HTMLField
# Create your models here. class BlogsPost(models.Model): title = models.CharField(max_length=150)
# body = models.TextField()
body = HTMLField()
timestamp = models.DateTimeField()
auth = models.TextField(default='秋寻草')
address = models.CharField(max_length=100, default='西安')
4. 如何配置tinymce:tinymce里默认的是最简单的样式,而且宽度和高度看起来也挺别扭的,需要我们自己配置,有两种配置方式。
方法1、
打开tinymce文件,找到settings.py,打开,找到DEFAULT_CONFIG选项,这个选项是配置选项。将{'theme': "simple", 'relative_urls': False}改成:
{'theme': "advanced",'relative_urls': False,’width’:’1200’,’height’:’500’},此种富文本框还是很简单;
方法2、
修改工程的settings.py文件。最下面添加
TINYMCE_DEFAULT_CONFIG = {
# // General options
'mode': 'textareas',
'theme': "advanced",
'plugins': "pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount,advlist,autosave",
# // Theme options
'theme_advanced_buttons1': "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect,fullscreen,code",
'theme_advanced_buttons2': "cut,copy,paste,pastetext,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,|,insertdate,inserttime,preview,|,forecolor,backcolor",
'theme_advanced_buttons3': "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl",
'theme_advanced_toolbar_location': "top",
'theme_advanced_toolbar_align': "left",
'theme_advanced_statusbar_location': "bottom",
'theme_advanced_resizing': 'true',
# // content_css: "/css/style.css",
'template_external_list_url': "lists/template_list.js",
'external_link_list_url': "lists/link_list.js",
'external_image_list_url': "lists/image_list.js",
'media_external_list_url': "lists/media_list.js",
# // Style formats
'style_formats': [
{'title': 'Bold text', 'inline': 'strong'},
{'title': 'Red text', 'inline': 'span', 'styles': {'color': '#ff0000'}},
{'title': 'Help', 'inline': 'strong', 'classes': 'help'},
{'title': 'Table styles'},
{'title': 'Table row 1', 'selector': 'tr', 'classes': 'tablerow'}
],
'width': '',
'height': ''
}
按照方法2配置后,我们已经成功将TinyMCE富文本编辑器整合进了我们自己的django网站项目。以下是成果图:

前台页面使用tinymce:
STEP 1:
在模板的head中添加如下代码
<script src="/static/tiny_mce/tiny_mce.js"></script>
<script>
tinyMCE.init({
'mode':'textareas',
'theme':'advanced',
'width':450,
'height':300
})
</script>
STEP 2:
模板中添加textarea 标签,tinymce会自动把此标签变为富文本框
<form action="">
<label>
<textarea name="comment_content">富文本</textarea>
</label>
<br>
<input type="submit" value="提交评论" class="btn btn-default">
</form>
以下是效果

Django集成TinyMCE(admin后台+前台)的更多相关文章
- Django学习手册 - admin后台 切换成中文显示/添加数据表
Django admin后台管理 切换成中文界面: 站点显示为中文: 在setting 里面修改 LANGUAGE_CORE = 'zh-Hans' 字段名显示中文 class Test(models ...
- Django学习day8——admin后台管理和语言适应
Django最大的优点之一,就是体贴的为你提供了一个基于项目model创建的一个后台管理站点admin.这个界面只给站点管理员使用,并不对大众开放. 1. 创建管理员用户 (django) E:\Dj ...
- Linux下开发python django程序(设置admin后台管理模块)
1.新建项目和项目下APP django-admin startproject csvt03 django-admin startapp app1 2.修改settings.py文件 设置默认安装AP ...
- Linux下开发python django程序(设置admin后台管理上传文件和前台上传文件保存数据库)
1.项目创建相关工作参考前面 2.在models.py文件中定义数据库结构 import django.db import modelsclass RegisterUser(models.Model) ...
- python3.4下django集成使用xadmin后台
环境:window7 x64.python3.4.django1.10 一.pip install xadmin安装报错 1.使用pip install xadmin命令安装可能报如下错误: 2.解决 ...
- Django集成Bootstrap美化后台
1.pip install bootstrap-admin 2.编辑项目下的settings.py,增加下面行,放在最前面 3.编辑项目下的settings.py,增加下面行
- django (三) admin后台系统
admin后台系统 1. 安装MySQL 1,安装mysql: sudo apt install mysql-server (安装过程中输入密码并牢记) 2,安装后进入mysql: mysql ...
- django基础知识之后台管理Admin站点:
Admin站点 通过使用startproject创建的项目模版中,默认Admin被启用 1.创建管理员的用户名和密码 python manage.py createsuperuser 然后按提示填写用 ...
- Django框架详细介绍---Admin后台管理
1.Admin组件使用 Django内集成了web管理工具,Django在启动过程中会执行setting.py文件,初始化Django内置组件.注册APP.添加环境变量等 # Application ...
随机推荐
- 读<分布式一致性原理>初识zookeeper
zookeeper是什么 zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如:数据发布/订阅,负载均衡,命名服务,分布式协调/通知 ,集群管理,Master选举 ...
- Zedgraph悬停时显示内容闪烁的解决
中修改 HandleCursorValues 如下形式即可. // weng modified on 20170531 1016 private Point lastMovedPoint; priva ...
- Spark中RDD的常用操作(Python)
弹性分布式数据集(RDD) Spark是以RDD概念为中心运行的.RDD是一个容错的.可以被并行操作的元素集合.创建一个RDD有两个方法:在你的驱动程序中并行化一个已经存在的集合:从外部存储系统中引用 ...
- 前端开发之JavaScript基础篇四
主要内容: 1.定时器 2.正则表达式入门 3.元字符 4.正则表达式实战运用 一.定时器 javaScript里主要使用两种定时器,分别是:setInterval()和setTimeout(). 1 ...
- SmartGit过期后破解方法
根据自己的操作系统,进入相应的文件夹 ,可能还有一个版本号的文件夹,再进入 Windows: %APPDATA%\syntevo\SmartGit\OS X: ~/Library/Preference ...
- VUE+WebPack游戏开发:神庙逃亡的游戏设计
- 【BZOJ2038】小Z的袜子【莫队】
题意 给出包含n个数字的序列,和m个查询.每次查询问区间[l,r]中挑选出两个数字,大小相同的概率为多少. 分析 莫队的入门题吧.代码是非常好写,关键是时间复杂度的证明.O(n*sqrt(n)).我还 ...
- Stars URAL - 1028
就是给你一些星星的坐标,然后求出每个星星的左下角有多少颗星星 题目保证按照Y坐标的顺序给出每个星星的坐标,那么我们就可以说,当输入某个星星的坐标时,此时有多少个星星的横坐标小于它,它左下角就有多少星星 ...
- 超出div宽度范围的文字进行省略号省略,在鼠标移上去以后显示完整的内容
一.前言 当我们在固定的范围内显示内容时,我们是希望能够完整显示的,然而往往事与愿违,文本会超出我们给定的范围,这时候怎么办呢? 二.超出范围,对文本进行省略号隐藏 先上图 代码很简单 div{ wi ...
- Result Grouping / Field Collapsing-结果分组
WiKi:http://wiki.apache.org/solr/FieldCollapsing Introduction 字段折叠和结果分组是考虑相同solr功能的两种不同的方式. 字段折叠折叠一组 ...