对django灵活内容的富文本(wysiwyg)支持
django-flexible-content-ckeditor的Python项目详细描述
一个灵活的Django灵活内容类型,实现了CKDDSTR
为什么?
因为django-flexible-content被设计成尽可能最小的值,所以它的默认项类型集从来就不能满足所有人的需求我设计这个插件是为了我自己使用,原因很明显:有时候纯文本不够好用,而html不是一个用户友好的选项。
它是做什么的?
它允许用户友好地输入基本文本:
- 段落
- 粗体、斜体、下划线
- 列表
- 链接(可以配置)
此外,底层的CKEditorField本身可以选择清除提交的HTML,删除除上述字段之外的所有字段所以,如果你想不惜一切代价剥离外部样式和标签,它可以做到这一点或者,如果您想为小的HTML调整留出空间,也可以禁用它
它不起什么作用?
它故意不支持上传图像或文件。django-flexible-content背后的一个想法是,这些东西在后端是有风格的,并且管理得很好。
几个例子:
- 如果要显示图像或下载图像,并在其上方显示标题、下方显示标题或旁边显示说明,则您的图像类型可以支持该功能一个所见即所得的编辑几乎永远也做不到。 <> LI>如果你在18个不同的地方上传了相同的PDF或图像,你可以选择如何在图像类型中处理它(提供现有文件的列表;检测重复上传,并将所有这些引用指向文件的单个版本)。
从技术上讲,你可以手动链接到上传的文件,或者引用原始html中的图像……哦,好吧。
如何设置?
安装程序包:pip install django-flexible-content-ckeditor
更新项目设置以将包包含在INSTALLED_APPS:
INSTALLED_APPS = ( # your other apps here # ... 'flexible_ckeditor', )
重新启动服务器并开始!
FLEXIBLE_CONTENT = { 'ITEM_TYPES': ( 'flexible_ckeditor.CKEditorText', # You'll probably want to include some of the default item types, # if you hadn't configured FLEXBILE_CONTENT['ITEM_TYPES'] yet. 'default_item_types.Download', 'default_item_types.Image', 'default_item_types.Video', ), }
我可以在项目的其他地方使用编辑器吗?
是的!尽管编辑器可能会被删减,但它可以用于支持django-flexible-content内容区域之外的任意模型的基本格式:
from django.db import models from flexible_ckeditor.fields import CKEditorField class Person(models.Model): name = models.CharField(max_length=100) bio = CKEditorField()
请注意,它仍将遵守FLEXIBLE_CONTENT['ckeditor']中定义的设置,例如是否在提交时清理html。