Markdown富文本编辑器 django-mdeditor
2018-11-29 by dongnan
目标
- 为 Django Admin 后台添加 django-mdeditor富文本编辑器。
- 使用 django-mdeditor编写markdown文档。
环境
| 软件 | 版本 | 
|---|---|
| Django | 1.11 | 
| Python | 3.4 | 
| Ubuntu Desktop | 14.04 | 
步骤
安装
pip install django-mdeditor
配置
在 settings.py 配置文件,注册 mdeditor 应用:
INSTALLED_APPS = [
    ...省略
    'mdeditor',
]
在 settings.py配置文件 中添加媒体文件的路径配置:
# media
MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads')
MEDIA_URL = '/media/'
创建存储目录
- 上传图片时,django将自动在项目根目录下创建uploads/editor目录,用于存放上传的图片。
- editor目录,可以通过设置- mdeditor/configs.py文件设置。
在项目的根 urls.py 中添加扩展url和媒体文件url:
from django.conf.urls import url, include
from django.conf.urls.static import static
from django.conf import settings
# ...省略
urlpatterns = [
    # ...省略
    url(r'mdeditor/', include('mdeditor.urls'))
]
if settings.DEBUG:
    # static files (images, css, javascript, etc.)
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
调整 models
# models.py 文件
# 导入 MDTextField 类
from mdeditor.fields import MDTextField
# 调整示例 Article content 字段为 MDTextField 类型:
class Article(models.Model):
    title = models.CharField(max_length=80)
    content = models.MDTextField()
    # ....省略        
    def __str__(self):
        return self.title    
如果你没有在 admin后台找到设置的类,需要在 admin.py文件中注册 Article model 例如:
# admin.py 文件
from django.contrib import admin
from .models import Article
# Register your models here.
admin.site.register(Article)
# 省略 ...  
执行迁移操作,完成调整 model数据库表结构。
python manage.py makemigrations
python manage.py migrate
在后台测试 django-mdeditor
登录 django admin 后台,选择相应的 model 与表,点击 '添加'操作,你会看到如下界面。

实时预览,真是太棒了。
小结
通过 django-mdeditor 编辑器上传的图片,url 地址按照 MEDIA_URL 设置为准,例如 E81A0560.jpg 图片:
- 目录: uploads/editor/
- URL: http://your-server/media/editor/E81A0560_20181127224529944125.jpg