美文网首页
Django 搭建博客项目(5)-使用富文本编辑器发帖内容

Django 搭建博客项目(5)-使用富文本编辑器发帖内容

作者: 零星瓢虫 | 来源:发表于2020-08-25 09:35 被阅读0次

上一篇文章完成了博客内容展示的功能,其中针对 MarkDown 格式的内容进行了解析和展示。本篇文章则着重在发帖功能,在后台增加富文本编辑器编辑博客内容。

先来看下原本后台增加文章的展示界面:

效果图_1.png

这里主要对 Content 内容填充的操作增加富文本编辑形式进行编辑。

首先安装富文本编辑器支持的库文件:

pip install django-ckeditor

安装完成后,对 setting.py 进行相关配置。

第三方应用的配置:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'post',
    'ckeditor',
    'ckeditor_uploader'
]

配置上传文件路径,即 MEDIA 的映射路径:

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
CKEDITOR_UPLOAD_PATH = 'upload/'

setting.py 文件配置完成后,需要继续配置根路由下的 url.py 文件:

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', include('post.urls')),
    url(r'ckeditor/', include('ckeditor_uploader.urls')),
]

if DEBUG:
    urlpatterns += url(r'^media/(?P<path>.*)/$', serve, {'document_root': MEDIA_ROOT}),

配置完成 ckeditor 的读取路径和 对用上传图片的路径,接下来去对应模型类 model.py 中的数据进行修改。

class Post(models.Model):
    title = models.CharField(max_length=100, unique=True)
    desc = models.CharField(max_length=100)
    content = RichTextUploadingField(null=True, blank=True)
    created = models.DateTimeField(auto_now_add=True)
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    tag = models.ManyToManyField(Tag)

    class Meta:
        db_table = 't_post'
        verbose_name_plural = u'帖子'

    def __unicode__(self):
        return u'Post:%s' % self.title

    def __str__(self):
        return u'Post:%s' % self.title

对应 content 字段进行改变,应用 ckeditor 包中的 RichTextUploadingField 字段,content 字段已经改变了,最后,对应的迁移文件也需要重新生成。

运行相关命令:

python manage.py makemigrations 

python manage.py migarte
G:\2_blog>python manage.py makemigrations
Migrations for 'post':
  post\migrations\0002_auto_20200724_2139.py
    - Change Meta options on category
    - Change Meta options on post
    - Change Meta options on tag
    - Alter field cname on category
    - Alter field created on post
    - Alter field tname on tag

G:\2_blog>python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, post, sessions
Running migrations:
  Applying post.0002_auto_20200724_2139... OK

生成新的对应的迁移文件。

最后去后台看下新建帖子的界面情况:

效果图_2.png

欢迎关注公众号,在聊天对话框回复「博客」获取源码地址以及其他 python 相关知识。

python面面观.jpg

相关文章

网友评论

      本文标题:Django 搭建博客项目(5)-使用富文本编辑器发帖内容

      本文链接:https://www.haomeiwen.com/subject/gcislktx.html