Django使用xadmin集成富文本编辑器Ueditor(方法二)
一、xadmin的安装与配置
1、安装xadmin,其中第一种在python3中安装不成功,推荐第二种或者第三种
1 方式一:pip install xadmin 2 方式二:pip install git+git://github.com/sshwsfc/xadmin.git 3 方式三:下载https://codeload.github.com/sshwsfc/xadmin/zip/master zip文件,解压并进入目录下 4 直接python setup.py install
2、在settings.py里面注册上
1 installed_apps = ( 2 #........ 3 'xadmin', 4 'crispy_forms', 5 )
3、修改urls.py
import xadmin urlpatterns = [ #url(r'^admin/', admin.site.urls), url(r'^xadmin/', xadmin.site.urls), ]
4、在应用下新建adminx.py
import xadmin xadmin.site.register(level)#你的应用名
5、启动django
python manage.py makemigrations python manage.py migrate python manage.py runserver 8000
如果成功即可访问
6、访问
http://你的ip:8000/xadmin/
二、djangoueditor的安装与配置
1、安装djangoueditor,python2和python3要分清楚。
方式一:下载https://github.com/twz915/djangoueditor3/下的源码包,在命令行运行:python setup.py install 方法二:使用pip工具在命令行运行(推荐):pip install djangoueditor
2、在install_apps里面增加如下配置:
installed_apps = ( #........ 'djangoueditor', )
3、在setting.py的其他配置
1 ueditor_settings = { 2 "toolbars": { # 定义多个工具栏显示的按钮,允行定义多个 3 "name1": [['source', '|', 'bold', 'italic', 'underline']], 4 "name2": [] 5 }, 6 "images_upload":{ 7 "allow_type": "jpg,png", # 定义允许的上传的图片类型 8 "max_size": "2222kb" # 定义允许上传的图片大小,0代表不限制 9 }, 10 "files_upload": { 11 "allow_type": "zip,rar", # 定义允许的上传的文件类型 12 "max_size": "2222kb" # 定义允许上传的文件大小,0代表不限制 13 }, 14 "image_manager": { 15 "location": "" # 图片管理器的位置,如果没有指定,默认跟图片路径上传一样 16 }, 17 } 18 media_url='/upload/' 19 media_root = os.path.join(base_dir, 'upload/')#这个是在浏览器*问该上传文件的url的前缀
说明:
ueditorfield继承自models.textfield,因此你可以直接将model里面定义的models.textfield直接改成ueditorfield即可。
ueditorfield提供了额外的参数:
toolbars:配置你想显示的工具栏,取值为mini,normal,full,besttome, 代表小,一般,全部,涂伟忠贡献的一种样式。如果默认的工具栏不符合您的要求,您可以在settings里面配置自己的显示按钮。参见后面介绍。
imagepath:图片上传的路径,如"images/",实现上传到"{{media_root}}/images"文件夹
filepath:附件上传的路径,如"files/",实现上传到"{{media_root}}/files"文件夹
scrawlpath:涂鸦文件上传的路径,如"scrawls/",实现上传到"{{media_root}}/scrawls"文件夹,如果不指定则默认=imagepath
imagemanagerpath:图片管理器显示的路径,如"imglib/",实现上传到"{{media_root}}/imglib",如果不指定则默认=imagepath。
options:其他ueditor参数,字典类型。参见ueditor的文档ueditor_config.js里面的说明。
css:编辑器textarea的css样式
width,height:编辑器的宽度和高度,以像素为单位。
3、配置url
from django.conf.urls.static import static from django.conf import settings url(r'^ueditor/', include('djangoueditor.urls')), ] + static(settings.media_url, document_root=settings.media_root)
4、配置adminx.py
from webedit.models import * class leveladmin(object): style_fields = {"content": "ueditor"} xadmin.site.register(level,leveladmin)
5、配置xadmin
在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.js") # 自己的静态目录 nodes.append(js) xadmin.site.register_plugin(ueditorplugin, updateadminview) xadmin.site.register_plugin(ueditorplugin, createadminview) 在xadmin/plugins/__init__.py添加ueditor 'ueditor'
6、在models下添加ueditor项
from djangoueditor.models import ueditorfield content = ueditorfield(verbose_name = '内容', height=500,width=1000,default=u'',imagepath="article_img/%%y/%%m/",toolbars='full',filepath='%%y/%%m/',upload_settings={"imagemaxsize": 1204000},settings={}, command=none,)
将djangoueditor下的static文件复制到应用下的static,启动即可使用
7、页面中显示富文本(关闭django的自动转义才能正常显示)
{% autoescape off %} {{ item.content }} {% endautoescape %}
原文链接:https://blog.csdn.net/bbwangj/article/details/80883931