Django中在xadmin中集成DjangoUeditor

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下

3.在settings.py里注册DjangoUeditor

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

4.在url里对其进行配置

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

5.在xadmin中添加插件ueditor

在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中

class NoticeAdmin(admin.ModelAdmin):
    style_fields = {"detail": "ueditor"}

8.运行结果:

9.前端显示需要加上:

{% autoescape off %}
{% endautoescape %}

  

原文地址:https://www.cnblogs.com/1998lu/p/9313852.html

时间: 2024-10-23 04:08:56

Django中在xadmin中集成DjangoUeditor的相关文章

django xadmin后台集成DjangoUeditor

安装和配置xadmin 1. 安装(注意区分版本) python2.x pip install xadmin python3.x # 方式1 pip install git+git://github.com/sshwsfc/xadmin.git # 方式2 下载https://codeload.github.com/sshwsfc/xadmin/zip/master,解压并进入目录下,直接python setup.py install 2. 配置 1. 将xadmin添加到settings.py

在Django Xadmin中集成Ueditor

Ueditor是由百度开发的一个开源的富文本编辑器,有人做了一个将其集成到Django中的方案(请戳),但是在xadmin中却无法正常加载编辑器. 其使用了一个模板用来呈现Ueditor的编辑界面 <textarea name={{ UEditor.name }} id=id_{{ UEditor.name }} style="display:inline-block;width:{{ UEditor.width }}px; {{ UEditor.css }}">{{UEd

django xadmin中logout页面在chrome浏览器中点击关闭页面无效

问题现象 django xadmin中logout页面在chrome浏览器中点击关闭页面无效,无法关闭相应的页面 问题原因 高版本的chrome等浏览器不支持在window.colse()的写法 问题源码 在xadmin的templates的xadmin的views的logged_out.html中找到以下源码 <a href="#" onclick="javascript:window.opener=null;window.open('','_self');windo

xadmin集成DjangoUeditor,以及编辑器的视频路径配置

稍微讲一下DjangoUeditor的配置,因为之前去找配置的时候东拼西凑的,所以自己写一下自己一步步配置的过程.首先我是再github上去下载下来,因为是当作第三方插件集成到xadmin中,所以不用pip安装,直接和xadmin放一个目录就ok了. 然后是在项目的设置里面进行配置,在INSTALLED_APPS中申明DjangoUeditor的存在, 这两步做完之后就找到xadmin的plugins目录,在目录下新建一个ueditor.py的文件,其中的代码如下: #!/usr/bin/env

django中settings.py中变量的全局引用

在settings.py中添加自定义变量,可以通过setting.(点)变量名的方式访问,如: from django.conf import settings site_name = settings.SITE_NAME site_desc = settings.SITE_DESC 但是,如果遇到了一些频繁访问的变量,如:邮箱,网站标题,网站的描述,这样访问就很不方便,解决方法: 1.首先在settings.py中添加对应的变量: #网站信息 SITE_NAME="hupeng的个人博客&qu

利用开发框架中的标签库集成报表工具

在项目开发中,完成数据录入后,统计分析报表是必定要出的,后期还会应客户要求出现更多的统计分析报表. 集成一个成熟的报表工具来应对各种复杂和多变的报表是最好不过的了. java的开发框架很多都利用标签库来实现表现层与业务层的分离和结合,也使java的项目开发更加简洁和易于维护.集成了struts标签库的jsp页面,标签库本身有一些判断循环的逻辑,又能方便的获取后端的数据,被大部分的java开发框架利用,jsp页面本身也不用太多的js和java的代码混合.使得表现层的代码一目了然,方便后期的维护.

Django与SQL语言中——NULL与空字符串的区别

SQL有指定空值的独特方式,它把空值叫做NULL. Null在数据库中表示 不知道的数据,主要有3种意思: 1)知道数据存在,但不知道具体值. 2)不知道数据是否存在. 3)数据不存在. 在SQL中, NULL的值不同于空字符串,就像Python中None不同于空字符串("")一样.这意味着某个字符型字段(如VARCHAR)的值不可能同时包含NULL和空字符串. 这会引起不必要的歧义或疑惑. 为什么这条记录有个NULL,而那条记录却有个空字符串? 它们之间有区别,还是数据输入不一致?

django使用过程的中踩的坑

1.django的request参数其中 请求报文 由客户端发送,其中包含和许多的信息,而 django 将这些信息封装成了 HttpRequest 对象,该对象由 HttpRequest 类创建.每一个请求都会生成一个 HttpRequest 对象,django会将这个对象自动传递给响应的视图函数,一般视图函数约定俗成地使用 request 参数承接这个对象 简而言之就是我们可以用这个方法从前台取到各种数据,比如cookies,表单的参数等 2.django的sql操作 table.objec

Django之admin中管理models中的表格

Django之admin中管理models中的表格 django中使用admin管理models中的表格时,如何将表格注册到admin中呢? 具体操作就是在项目文件夹中的app文件夹中的admin中注册需要管理的表格即可,具体操作如下: admin.py中写入如下代码: 完成以上操作即可登录admin中进行界面化操作这些表格了. 原文地址:https://www.cnblogs.com/ZN-225/p/9861285.html