使用富文本编辑器
参考链接:https://cloud.tencent.com/developer/article/1853667
安装django-ckeditor
pip install django-ckeditor
settings.py添加应用,
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','slide','team','news','ckeditor','ckeditor_uploader', # 上传图片时使用]
配置上传路径
# media 配置MEDIA_URL = '/media/'MEDIA_ROOT = os.path.join(BASE_DIR, 'media')# 富文本ckeditor配置CKEDITOR_UPLOAD_PATH = 'upload/'CKEDITOR_IMAGE_BACKEND = 'pillow'
模型中使用
from distutils.command.upload import uploadfrom django.db import modelsfrom ckeditor.fields import RichTextFieldfrom ckeditor_uploader.fields import RichTextUploadingField #可以上传本地图片# Create your models here.class Category(models.Model):id = models.AutoField(primary_key=True)name = models.CharField('分类名称',max_length=100)class Meta:verbose_name = '分类管理'verbose_name_plural = '分类管理'def __str__(self):return self.nameclass News(models.Model):id = models.AutoField(primary_key=True)title = models.CharField('标题',max_length=100)content = RichTextUploadingField()cover = models.ImageField('封面',upload_to='news',blank=True, null=True,help_text='最佳尺寸:480*270px')created_at = models.DateTimeField('创建时间', auto_now_add=True, editable=True)updated_at = models.DateTimeField('更新时间', auto_now=True, editable=True)category = models.ForeignKey(Category, on_delete = models.CASCADE)class Meta:verbose_name = '新闻管理'verbose_name_plural = '新闻管理'def __str__(self):return self.title
配置路由
全局配置的url.py 文件中,设置ckeditor路由。
urlpatterns = [path('', include('website.urls')),path('news/', include('news.urls')),path('ckeditor', include('ckeditor_uploader.urls')),path('admin/', admin.site.urls),]from django.conf import settingsfrom django.conf.urls.static import staticurlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
下面的urlpatterns是为了显示上传的路径。仅在测试时使用,上线后,通过nginx配置。
