IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python3.8.10和Django3.2.8环境下用DjangoUEditor 1.8.143的安装以及遇到的问题和解决方法 -> 正文阅读

[Python知识库]python3.8.10和Django3.2.8环境下用DjangoUEditor 1.8.143的安装以及遇到的问题和解决方法

很多时候我们都在python和Django3.2.8环境下使用DjangoUEditor实现富文本的使用和编辑,今晚踩坑比较多,小结一下,或许对各位大虾有点小小的启发。

1、DjangoUEditor的安装

1.1、DjangoUEditor一般需要自行下载,各位可以从github.com(国外)或者gitee.com(国内)中找到,版本稍有些早。

1.2、安装

DjangoUEditor安装包解压缩后,进入到DjangoUEditor文件夹,可以看到有个setup.py的文件执行python setup.py install 进行安装即可。

python setup.py install 

2、DjangoUEditor在项目中的使用

2.1、将DjangoUEditor文件夹中的DjangoUeditor文件夹复制到项目目录中;

2.2、打开项目目录的settings.py,在INSTALLED_APPS项中增加:

INSTALLED_APPS = [
    ......
    'DjangoUeditor',  #添加富文本编辑器
    ......
]

2.3、打开项目目录的urrls.py,增加DjangoUEditor路由

urlpatterns = [
    ...
    path('ueditor/',include('DjangoUeditor.urls')), #富文本编辑器
    ...
]

2.4、在项目中的某个应用中,打开models.py,定义一个DjangoUEditor的字段

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


# Create your models here.


class MyNew(models.Model):
    description = UEditorField(u'内容',   #该字段在后台系统中的别名
                               default='',  
                               width=1000,  #在后台系统中编辑界面的宽度
                               height=300,  #在后台系统中编辑界面的长度
                               imagePath='news/images/',   #用户上传图片的路径
                               filePath='news/files/')   #用户删除文件的路径
    def __str__(self):
        return self.title

    class Meta:
        verbose_name = "测试"
        verbose_name_plural = verbose_name

2.5、在应用的admin.py中添加如下内容:

from django.contrib import admin
from .models import MyNew

# Register your models here.

class MyNewAdmin(admin.ModelAdmin):
    style_fields = {'description': 'ueditor'}


admin.site.register(MyNew, MyNewAdmin)

以上做完以后,就可以在后台使用DjangoUEditor了。

但是......

上传图形出错、上传视频出错......呜呜呜........

3、需要修改的几处代码

原因:django3.x以后six、urllib、south都已经被移除,所以需要修改部分代码

?3.1、DjangoUeditor\widgets.py

from django.utils.six import string_types  
修改为:
from six import string_types

3.2、DjangoUeditor\view.py

from django.utils import six

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

改为:

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

3.3、DjangoUeditor\commands.py

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

改为:

from urllib.parse import urljoin

3.4、DjangoUeditor\utils.py

from django.utils import six

改为

import six

3.5、DjangoUeditor\models.py

# 以下支持south
try:
    from south.modelsinspector import add_introspection_rules
    add_introspection_rules([], ["^DjangoUeditor\.models\.UEditorField"])
except:
    pass

需要安装south控件,才能更好地支持新版本的浏览器:

pip install south

3.6、修改django安装目录下的\forms\boundfield.py文件:

...
    def as_widget(self, widget=None, attrs=None, only_initial=False):
        """
        Render the field by rendering the passed widget, adding any HTML
        attributes passed as attrs. If a widget isn't specified, use the
        field's default widget.
        """
        widget = widget or self.field.widget
        if self.field.localize:
            widget.is_localized = True
        attrs = attrs or {}
        attrs = self.build_widget_attrs(attrs, widget)
        if self.auto_id and 'id' not in widget.attrs:
            attrs.setdefault('id', self.html_initial_id if only_initial else self.auto_id)
        return widget.render(
            name=self.html_initial_name if only_initial else self.html_name,
            value=self.value(),
            attrs=attrs,
            #renderer=self.form.renderer,   #此行需要进行注释
        )
...

好吧!至此,至少我的DjangoUeditor可以正常使用了。

以上经验仅供参考!

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-03 16:08:24  更:2022-03-03 16:08:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/31 5:50:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码