美文网首页
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