DjangoUeditor+python3.8+Django3.1.0的配置及安装使用

本文介绍了如何在Django3项目中集成DjangoUeditor富文本编辑器,涉及settings.py、urls.py的配置,models.py中使用UEditorField,以及针对Django3.0.3中six库移除后的错误解决方案。
摘要由CSDN通过智能技术生成

一、安装DjangoUeditor

我们直接用命令行安装的DjangoUeditor是django2.0版本的,不适合我们,所以只能用zip安装

下载地址:https://github.com/twz915/DjangoUeditor3

下载之后,我们将其解压,复制DjangoUeditor文件夹到项目的根目录下,他也是我们项目的一个应用模块。

创建models.py文件,后台使用富文本编辑器,所以我们要进行配置。

二、富文本编辑器的配置

2.1 到项目的settings.py中注册DjangoUeditor应用

INSTALLED_APPS = [
    'django.contrib.admin',
    ....
    ....

   

    # 注册富文本编辑器
    'DjangoUeditor',
]

2.2 到项目的总路由urls.py 中添加DjangoUeditor的路由

urlpatterns = [
    path('admin/', xadmin.site.urls),
        ....
        ...
    path('ueditor/', include('DjangoUeditor.urls')),

]

2.3 在models.py中进行模型的操作,建立一个表,其中“description”字段用到富文本编辑器

from DjangoUeditor.models import UEditorField
from django.db import models

# Create your models here.
from django.utils import timezone


class Mynew(models.Model):
    """添加新闻模块"""
    NEWS_TYPE = (
        ('企业新闻', '企业新闻'),
        ('行业新闻', '行业新闻'),
        ('通知新闻', '通知新闻'),
    )
    title = models.CharField(max_length=50, verbose_name='新闻标题')
    description = UEditorField(u'内容', default='', width=950, height=280, imagePath='news/images/',
                               filePath='news/files/')
    newType = models.CharField(choices=NEWS_TYPE, max_length=50, verbose_name='新闻类型')
    publish_date = models.DateTimeField(max_length=20, default=timezone.now, verbose_name='发布时间')
    views = models.PositiveIntegerField(default=0, verbose_name='浏览量')

    def __str__(self):
        return self.title

    class Meta:
        ordering = ['-publish_date']
        verbose_name = '新闻'
        verbose_name_plural = '新闻'

2.4 对模型进行后台的注册,我是用的是xadmin后台管理,好看又大方,如果你也想使用,可以去看我的另一篇文章,里面讲的很详细。

import xadmin
from newsApp.models import Mynew


class MynewAdmin(object):
    """注册newsApp后台"""
    style_fields = {'description': 'ueditor'}  # 富文本编辑器的注册


xadmin.site.register(Mynew, MynewAdmin)

2.5 运行

python manage.py makemigrations

和

python manage.py migrate

这里可能会出错,但是不用怕,接下去我们就讲讲解决方案。

三、出错的解决方法

用富文本编辑DjangoUEditor,DjangoUEditor中关于six的引用会报错,摸索了一下发现:

1、Django3.0.3移除了six。

2. six可以单独安装:pip install six。另外,urllib 好像也独立出来了,引用时不需有前缀。

3. 安装完six之后,将DjangoUEditor中有关的引用路径修改一下。包括如下三个文件的修改。

(1)DjangoUEditor目录下的views.py文件中有如下行

from django.utils.six.moves.urllib.request import urlopen
from django.utils.six.moves.urllib.parse import urljoin

改为:

from six.moves.urllib.request import urlopen
from six.moves.urllib.parse import urljoin
(2)widgets.py文件中有如下一行:

from django.utils.six import string_types  
修改为:
from six import string_types
(3)urllib似乎已从six之中独立出来,故commands.py文件中的如下一行:

from django.utils.six.moves.urllib.parse import urljoin
改为:
from urllib.parse import urljoin
以上三个文件中对six的引用路径个改后,Django3项目进入后台,富文本编辑能正常使用。

四、效果如下,很精美的后台和方便编辑

 

DjangoUeditorUeditor封装为一个Django app,提供文件/图片等上传功能,提供UEditorField、UEditorWidget等封装类,简化UeditorDjango中的应用。注:DjangoPython世界影响最大的Web框架。 本模块帮助在Django应用中集成百度Ueditor HTML编辑器,DjangoPython世界最有影响力的web框架。 Ueditor HTML编辑器是百度开源的在线HTML编辑器,功能非常强大,像表格可以直接拖动调整单元格大小等。 更新历史 [2014-7-8] Ver:1.8.143 Fix:当admin使用inlines生成多实例时widget命名不正确的问题 [2014-6-27] Ver:1.7.143 Fix:解决在admin管理后台的使用问题。 增加year,month,day的上传路径变量 [2014-6-25] 由于Ueditor从1.4版本开始,API发生了非常大的改动和不兼容,导致DjangoUeditor上一个版本的升级后上传功能不能用等,因此 本次重新设计了API,后端上传的代码几乎完全重写了。 更新到1.5.143,即版本号为1.5,使用Ueditor 1.4.3版本。 重新设计了UeditorWidget、UeditorField。 新增了自定义Ueditor按钮的功能 注意:本次升级与之前版本不兼容,但是在使用体验上差别不大。 [2014-6-16] 更新到Ueditor 1.4.3 [2014-5-15] 增加不过滤 script,style ,不自动转div为p的脚本 修复在django 1.6和python2.7下的警告 使用 json 代替 django 中的 simplejson 用content_type 代替原来的 mime_type [2014-5-7] 更新到Ueditor 1.3.6 BUGfix:更新UEditor文件夹名字,避免在linux出现找不到静态文件问题 添加一种样式,besttome, 希望大家喜欢 [2013-2-22] 更新到Ueditor 1.2.5 BUGfix:更新UEditor文件夹名字,避免在linux出现找不到静态文件问题 BUGfix:现在支持south更新了 针对csrf导致上传图片失败的问题,现在默认上传视图开启了csrf_exempt装饰 相关阅读 百度编辑器UEditor插件DjangoUeditor使用方法
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花开花落与云卷云舒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值