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单链表简单实现代码
Apr 27 Python
Python读取MRI并显示为灰度图像实例代码
Jan 03 Python
python安装教程
Feb 28 Python
python实现倒计时小工具
Jul 29 Python
Numpy对数组的操作:创建、变形(升降维等)、计算、取值、复制、分割、合并
Aug 28 Python
图解python全局变量与局部变量相关知识
Nov 02 Python
win10下python2和python3共存问题解决方法
Dec 23 Python
python 遗传算法求函数极值的实现代码
Feb 11 Python
Python使用Pyqt5实现简易浏览器(最新版本测试过)
Apr 27 Python
Python常见反爬虫机制解决方案
Jun 01 Python
基于PyTorch实现一个简单的CNN图像分类器
May 29 Python
Python中的 Set 与 dict
Mar 13 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
php中获取关键词及所属来源搜索引擎名称的代码
2011/02/15 PHP
php动态生成函数示例
2014/03/21 PHP
php代码审计比较有意思的例子
2014/05/07 PHP
CodeIgniter多语言实现方法详解
2016/01/20 PHP
php使用strip_tags()去除html标签仍有空白的解决方法
2016/07/28 PHP
ThinkPHP3.2框架操作Redis的方法分析
2019/05/05 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
50个优秀经典PHP算法大集合 附源码
2020/08/26 PHP
jquery下操作HTML控件的实现代码
2010/01/12 Javascript
基于jquery的自定义鼠标提示效果 jquery.toolTip
2010/11/14 Javascript
11款新鲜的jQuery插件[附所有demo下载]
2011/01/24 Javascript
Json序列化和反序列化方法解析
2013/12/19 Javascript
JavaScript中document.forms[0]与getElementByName区别
2015/01/21 Javascript
js仿土豆网带缩略图的焦点图片切换效果实现方法
2015/02/23 Javascript
JavaScript中判断函数、变量是否存在
2015/06/10 Javascript
JS实现设置ff与ie元素绝对位置的方法
2016/03/08 Javascript
jQuery表单对象属性过滤选择器实例详解
2016/09/13 Javascript
JavaScript中数组Array.sort()排序方法详解
2017/03/01 Javascript
详解tween.js的使用教程
2017/09/14 Javascript
简述vue中的config配置
2018/01/23 Javascript
vue与vue-i18n结合实现后台数据的多语言切换方法
2018/03/08 Javascript
解决vue-cli + webpack 新建项目出错的问题
2018/03/20 Javascript
Vue监听页面刷新和关闭功能
2019/06/20 Javascript
javascript实现商品图片放大镜
2019/11/28 Javascript
[05:06]2017亚洲邀请赛DAC回顾片
2017/04/19 DOTA
Python合并两个字典的常用方法与效率比较
2015/06/17 Python
Django 外键的使用方法详解
2019/07/19 Python
tensorflow自定义激活函数实例
2020/02/04 Python
pyqt5中动画的使用详解
2020/04/01 Python
咖啡为什么会有酸味?你喝到的咖啡為什麼是酸的?
2021/03/17 冲泡冲煮
纯CSS3实现8组超炫酷鼠标滑过图片动画
2016/03/16 HTML / CSS
初三班主任寄语大全
2014/04/04 职场文书
高考作弊检讨书1500字
2015/02/16 职场文书
2016创先争优活动党员公开承诺书
2016/03/24 职场文书
8g内存用python读取10文件_面试题-python 如何读取一个大于 10G 的txt文件?
2021/05/28 Python
MySQL的安装与配置详细教程
2021/06/26 MySQL