1.下载与安装
1.1 下载
下载地址:https://github.com/twz915/DjangoUeditor3
如果访问不了github就下载 我个人备份。备份东西可能比较多,DjangoUeditor3-master.zip这个压缩包就是富文本。
1.2 解压
1.3 安装
[shell]
python "C:\Users\pc\Desktop\课堂\python web\shiyaner\DjangoUeditor3-master\setup.py" install
[/shell]
解释: python 解压富文本目录的setup.py install
2.部署到项目中
2.1 将解压富文本目录的 DjangoUeditor 文件夹复制到你的项目app中,这里被当做一个app应用来使用
2.2 settings添加富文本应用
[python]
INSTALLED_APPS = [
# …
‘DjangoUeditor’, # 富文本应用
]
[/python]
注意大小写
在根目录app的urls.py文件设置路由
[python]
urlpatterns = [
# 其他应用路由
path(‘ueditor/’, include(‘DjangoUeditor.urls’)), # 富文本
]
[/python]
3.创建模型
3.1 app应用的数据库中注册富文本,以下是我个人做的,代码是复制别人的,注意要导入DjangoUeditor
[python]
from django.db import models
from DjangoUeditor.models import UEditorField
import django.utils.timezone as timezone
# Create your models here.
class MyNew(models.Model):
NEWS_CHOICES = (
(‘企业要闻’, ‘企业要闻’),
(‘行业新闻’, ‘行业新闻’),
(‘通知公告’, ‘通知公告’),
)
title = models.CharField(max_length=50, verbose_name=’新闻标题’)
description = UEditorField(u’内容’, default=”, width=1000, height=300, imagePath=’news/images/’, filePath=’news/files/’)
newType = models.CharField(choices=NEWS_CHOICES, max_length=50, verbose_name=’新闻类型’)
publishDate = models.DateTimeField(max_length=20, default=timezone.now(),verbose_name=’发布时间’)
views = models.PositiveSmallIntegerField(‘浏览量’, default=0)
def __str__(self):
return self.title
class Meta:
ordering = [‘-publishDate’]
verbose_name = "新闻"
verbose_name_plural = verbose_name
[/python]
3.2 数据同步,注意这里manage.py文件是自己的根文件
[shell]
python "C:\Users\pc\Desktop\课堂\python web\shiyaner\manage.py" makemigrations
python "C:\Users\pc\Desktop\课堂\python web\shiyaner\manage.py" migrate
[/shell]
4.后台引用
打开模型app的admin.py文件进行创建
[python]
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)
[/python]
注意,如果在这一步出现报错,而且是提示这个
[shell]
TypeError:render() got an unexpected keyword argument ‘render’
[/shell]
是由于版本不兼容的问题,根据报错文件提示 boundfield.py 的行,注释掉renderer=self.form.renderer
这是别人说的,因为我个人没有遇到,占时不考虑,接下来就可以了。