Django中在xadmin中集成DjangoUeditor过程详解


Posted in Python onJuly 24, 2019

环境

python版本:3.6

django:1.10.8

1.下载xadmin

https://github.com/sshwsfc/xadmin

下载DjangoUeditor

https://github.com/twz915/DjangoUeditor3

2.直接将xadmin和DjangoUeditor集成在pycharm里,在项目下新建一个文件夹extra_apps,将与xadmin、DjangoUeditor的同名文件复制在extra_apps下

Django中在xadmin中集成DjangoUeditor过程详解

3.在settings.py里注册DjangoUeditor

INSTALLED_APPS = [
 ...
 #xadmin第三方插件,实现富文本编辑
 'DjangoUeditor'
]

4.在url里对其进行配置

url(r'^ueditor/',include('DjangoUeditor.urls'))

5.在xadmin中添加插件ueditor

Django中在xadmin中集成DjangoUeditor过程详解

在xadmin-》plugins下新建ueditor.py

import xadmin
from xadmin.views import BaseAdminPlugin, CreateAdminView, ModelFormAdminView, UpdateAdminView
from DjangoUeditor.models import UEditorField
from DjangoUeditor.widgets import UEditorWidget
from django.conf import settings
 
 
class XadminUEditorWidget(UEditorWidget):
 def __init__(self,**kwargs):
  self.ueditor_options=kwargs
  self.Media.js = None
  super(XadminUEditorWidget,self).__init__(kwargs)
 
 
class UeditorPlugin(BaseAdminPlugin):
 
 def get_field_style(self, attrs, db_field, style, **kwargs):
  if style == 'ueditor':
   if isinstance(db_field, UEditorField):
    widget = db_field.formfield().widget
    param = {}
    param.update(widget.ueditor_settings)
    param.update(widget.attrs)
    return {'widget': XadminUEditorWidget(**param)}
  return attrs
 
 def block_extrahead(self, context, nodes):
  js = '<script type="text/javascript" src="%s"></script>' % (settings.STATIC_URL + "ueditor/ueditor.config.js")   #自己的静态目录
  js += '<script type="text/javascript" src="%s"></script>' % (settings.STATIC_URL + "ueditor/ueditor.all.min.js") #自己的静态目录
  nodes.append(js)
 
xadmin.site.register_plugin(UeditorPlugin, UpdateAdminView)
xadmin.site.register_plugin(UeditorPlugin, CreateAdminView)

6.在xadmin-》plugins-》__init__.py中添加ueditor

PLUGINS = (
 'actions',
 'filters',
 'bookmark',
 'export',
 'layout',
 'refresh',
 'details',
 'editable',
 'relate',
 'chart',
 'ajax',
 'relfield',
 'inline',
 'topnav',
 'portal',
 'quickform',
 'wizard',
 'images',
 'auth',
 'multiselect',
 'themes',
 'aggregation',
 'mobile',
 'passwords',
 'sitemenu',
 'language',
 'quickfilter',
 'sortablelist',
 'importexport'
 'ueditor'
)

7.将ueditor添加到adminx.py中

这里的NoticeContent是指使用UEditorField的字段

class NoticeAdmin(object): list_display = ['NoticeTitle', 'NoticeContent','NoticeDesc','NoticeCategory', 'NoticeData','NoticeUser'] style_fields={"NoticeContent":"ueditor"}

8.运行结果:

Django中在xadmin中集成DjangoUeditor过程详解

9.前端显示需要加上:

{% autoescape off %}
{% endautoescape %}

注意:要想在富文本编辑框中显示出图片,必须在settings.py里设置路径:

MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/')  #设置静态文件路径为主目录下的media文件夹
MEDIA_URL = '/media/'

在与项目同名的文件下的urls.py中添加:

urlpatterns = [
 url('admin/', admin.site.urls),
 url(r'^ueditor/',include('DjangoUeditor.urls')),
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

否则无法显示图片。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python contextlib模块使用示例
Feb 18 Python
Python闭包函数定义与用法分析
Jul 20 Python
Python基于百度云文字识别API
Dec 13 Python
理想高通滤波实现Python opencv示例
Jan 30 Python
python 判断linux进程,并杀死进程的实现方法
Jul 01 Python
python Qt5实现窗体跟踪鼠标移动
Dec 13 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
Jun 02 Python
Pytorch 使用CNN图像分类的实现
Jun 16 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
Jun 24 Python
python两种注释用法的示例
Oct 09 Python
Python的轻量级ORM框架peewee使用教程
Feb 05 Python
python实现三阶魔方还原的示例代码
Apr 28 Python
Django 权限认证(根据不同的用户,设置不同的显示和访问权限)
Jul 24 #Python
Django 创建/删除用户的示例代码
Jul 24 #Python
python3.6+django2.0+mysql搭建网站过程详解
Jul 24 #Python
简单了解python 邮件模块的使用方法
Jul 24 #Python
python 根据字典的键值进行排序的方法
Jul 24 #Python
如何使用Flask-Migrate拓展数据库表结构
Jul 24 #Python
Python定时任务工具之APScheduler使用方式
Jul 24 #Python
You might like
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
2013/06/17 PHP
PHP实现生成唯一编号(36进制的不重复编号)
2014/07/01 PHP
微信公众平台接口开发入门示例
2014/12/24 PHP
php+mysqli实现批量替换数据库表前缀的方法
2014/12/29 PHP
php对文件进行hash运算的方法
2015/04/03 PHP
YII Framework框架教程之日志用法详解
2016/03/14 PHP
javascript instanceof,typeof的区别
2010/03/24 Javascript
ModelDialog JavaScript模态对话框类代码
2011/04/17 Javascript
jQuery源码分析-03构造jQuery对象-工具函数
2011/11/14 Javascript
idTabs基于JQuery的根据URL参数选择Tab插件
2012/04/11 Javascript
javascript中日期转换成时间戳的小例子
2013/03/21 Javascript
使用javascript创建快捷方式的简单实例
2013/08/09 Javascript
Js中使用hasOwnProperty方法检索ajax响应对象的例子
2014/12/08 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
详解javascript获取url信息的常见方法
2016/12/19 Javascript
Angular.JS去掉访问路径URL中的#号详解
2017/03/30 Javascript
微信小程序实现传参数的几种方法示例
2018/01/10 Javascript
用图片替换checkbox原始样式并实现同样的功能
2018/11/15 Javascript
写了个监控nginx进程的Python脚本
2012/05/10 Python
Python随手笔记之标准类型内建函数
2015/12/02 Python
Python3安装Scrapy的方法步骤
2017/11/23 Python
基于Python pip用国内镜像下载的方法
2018/06/12 Python
python根据文章标题内容自动生成摘要的实例
2019/02/21 Python
Python 函数绘图及函数图像微分与积分
2019/11/20 Python
django中url映射规则和服务端响应顺序的实现
2020/04/02 Python
使用Python防止SQL注入攻击的实现示例
2020/05/21 Python
Soft Cotton捷克:来自爱琴海棉花的浴袍
2017/02/01 全球购物
印度最好的在线药品订购网站:PharmEasy
2018/11/30 全球购物
心理学专业大学生职业生涯规划范文
2014/02/19 职场文书
晚归检讨书
2014/02/19 职场文书
社区服务活动小结
2014/07/08 职场文书
《折线统计图》教学反思
2016/02/22 职场文书
毕业季聚会祝酒词!
2019/07/04 职场文书
Python连续赋值需要注意的一些问题
2021/06/03 Python
Python还能这么玩之只用30行代码从excel提取个人值班表
2021/06/05 Python
解决Springboot PostMapping无法获取数据的问题
2022/05/06 Java/Android