Django高级扩展之tinymce富文本实现

 

目录

安装

在站点中使用

注册富文本应用

添加配置文件

创建模型类

生成迁移文件

执行表迁移

配置站点

富文本不显示解决

修改主题

修改语言设置

自定义视图使用

设置路由

视图

创建模板

总结


安装

pip install django-tinymce

 

安装过程如下:

Django高级扩展之tinymce富文本实现_第1张图片

 

在站点中使用

注册富文本应用

配置settings.py文件

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',
    'tinymce'
]

添加配置文件

在settings.py底部添加,配置模式和宽高。

# 富文本配置
TINYMCE_DEFAULT_CONFIG = {
    'theme': 'advanced',
    'width': 600,
    'height': 400
}

创建模型类

项目models.py中增加方法

from tinymce.models import HTMLField

class Text(models.Model):

    
    str = HTMLField()

生成迁移文件

命令如下:

python manage.py makemigrations myapp

执行结果如下:

D:\lianxi_py\project>python manage.py makemigrations myapp
Migrations for 'myapp':
  myapp\migrations\0006_auto_20230616_1131.py
    - Create model Text
    - Change Meta options on students
    - Change managers on students
    - Alter field desc on students

执行表迁移

将模型的最新状态部署到数据库。

命令如下:

python manage.py migrate myapp

执行结果如下:

D:\lianxi_py\project>python manage.py migrate myapp
Operations to perform:
  Apply all migrations: myapp
Running migrations:
  Applying myapp.0006_auto_20230616_1131... OK

配置站点

Admin.py 模型类站点注册

from django.contrib import admin
from .models import Text


admin.site.register(Text)

然后站点登录,站点管理增加Texts。

 Django高级扩展之tinymce富文本实现_第2张图片

点击详情,增加text

Django高级扩展之tinymce富文本实现_第3张图片 

 

富文本不显示解决

这时候,没出现富文本

 Django高级扩展之tinymce富文本实现_第4张图片

查看控制台提示js 404

Django高级扩展之tinymce富文本实现_第5张图片 

 看网上几个解决方法一一尝试,发现注释设置的主题后,能加载出来。

Django高级扩展之tinymce富文本实现_第6张图片

看到网友说django-tinymce-2.8.0这个版本才有advanced主题。

我的Django版本是3.0 只能改主题了。

修改主题

找到django-tinymce库(一般在python3.7\Lib\site-packages中)

打开tinymce查看主题

就剩下moblie和silver两种。所以之前设置的模板无法找到。

模板改为silver

'theme': 'silver',

 

修改语言设置

默认显示为繁体字,改为简体中文。

'language': 'zh_CN'

效果

 Django高级扩展之tinymce富文本实现_第7张图片

 

自定义视图使用

设置路由

urlpatterns = [
    # 自定义富文本实现
    path(r'custom_edit', views.custom_edit, name='custom_edit')
]

视图

def custom_edit(request):
    """ 自定义页面使用富文本 """

    return render(request, 'myapp/custom_edit.html')

创建模板

加载tinymce.min.js脚本,设置配置后,再加载相应语言脚本。

{% load static %}



    
    自定义页面使用富文本
    
    


    

访问

Django高级扩展之tinymce富文本实现_第8张图片

 

总结

富文本主要用于在项目中实现图文混合编辑,但又想实现非固定模板时,使用,后台编辑发布,利用的就是富文本的所见即所得效果!

你可能感兴趣的:(#,Django高级,django,python,后端)