ckeditor,用于富文本编辑!
taggit,可以很方便快捷地为一篇文章实现标签功能!
【推荐】所有python相关的包,都推荐使用pypi.org里面的安装命令!
pip3 install django-ckeditor
pip3 install django-taggit
这两个模块需要首先到setting里,进行登记!
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'notebook', 'taggit', 'ckeditor', ]
其中,富文本ckeditor还要写一下相关配置:
所有django中引入的第三方模块,如果需要进行一些定制化的配置,都需要写在setting文件里。
awesome_ckeditor,是这个富文本对象的名称(也可以视为是配置的名称)。
CKEDITOR_CONFIGS = { 'awesome_ckeditor': { 'toolbar': 'Basic', 'height': 450, 'width': 800, }, }
然后在models里,引入相关的对象即可:
from django.db import models from taggit.managers import TaggableManager from ckeditor.fields import RichTextField # Create your models here. class MyNote(models.Model): title = models.CharField(max_length=64, default='a default title') content = RichTextField(config_name='awesome_ckeditor') pub_time = models.DateTimeField() update_time = models.DateTimeField(auto_now=True) pub_date = models.DateField(auto_now=True) personal_tags = TaggableManager() def __str__(self): return self.title[0:32]
避免重复造轮子,善于使用别人的劳动成果是一个优秀程序员的必备素质,可以看到:
content = RichTextField(config_name='awesome_ckeditor')
personal_tags = TaggableManager()
我们一篇文章中的两个部分,可以直接由非django模块来完成:ckeditor里的RichTextField替代了django的model里的相应内容,文章的标签,完全由taggit来实现。
最终的界面效果如下:
关于taggit,多个标签最好使用半角逗号进行分割!