1.富文本编辑器
这里继续上篇的项目搭建,article应用处的content(文章简介)用的是文本类型,我们在此采用富文本编辑器可方便后台进行文章或详情编辑,也可以在文章中插入图片或链接,下面举例进行简单的说明;
(1)安装与配置
首先在PyCharm中安装富文本编辑器tinymce;
pip install django-tinymce
在settings的INSTALLED_APPS中引入tinymce并添加tinymce的默认配置;
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'tinymce', # 引入
'ar_type',
'article',
]
TINYMCE_DEFAULT_CONFIG = {
'theme': 'silver',
'language': 'zh_CN',
'menubar': 'edit format',
'plugins': 'lists,advlist bold underline alignleft aligncenter alignright fontselect fontsizeselect code image link table',
'toolbar': 'bullist numlist bold underline alignleft aligncenter alignright fontselect fontsizeselect code image link table',
'images_upload_url': '/uploadImg/',
'relative_urls': False, # 图片能显示在文本编辑器的框中
'remove_script_host': True,
'width': 800,
'height': 400
}
在主路由urls.py中配置tinymce访问路径;
url(r'^tinymce/', include("tinymce.urls")),
(2)使用
在模板类中引入HTMLField,在应用article/models.py中;
from django.db import models
from db.baseModel import BaseModel
from ar_type.models import ArType
# Create your models here.
from tinymce.models import HTMLField
class Article(BaseModel):
name = models.CharField(max_length=200, verbose_name='文章标题')
post_img = models.ImageField(upload_to='poster', verbose_name='封面图片')
author = models.CharField(max_length=20, verbose_name='作者名')
desc = models.TextField(verbose_name='文章简介')
content = HTMLField(verbose_name='文章内容')
view_num = models.IntegerField(default=0, verbose_name='浏览人数')
zan_num = models.IntegerField(default=0,verbose_name='点赞人数')
type = models.ForeignKey(ArType, verbose_name='文章类型')
class Meta:
db_table = 'article'
verbose_name_plural = '文章'