django管理ckeditor集成。
django-ckeditor的Python项目详细描述
django ckeditor 编辑
注意:django ckeditor 5的代码向后移动与4.5.1不兼容。
文件上载支持已移动到ckeditor_uploader。URL位于ckeditor_uploader.url中,而对于文件上载小部件,必须使用richtextuploadingfield而不是richtextfield。
django管理员编辑集成。 提供一个 richtextfield , richtextuploadingfield , ckeditorwidget 和 ckeditoruploadingwidget 利用包含图像上载和浏览支持的ckeditor。
此版本还包括:
- 支持Django存储(与S3一起使用)
- 将ckeditor更新到4.9版
- 包括所有的ckeditor语言和插件文件,让大家高兴!( 只有ckeditor开发团队维护的插件 )
内容
-
django ckeditor(django ckeditor)id="id45" rel="nofollow">django ckeditor(django ckeditor)
-
安装
- 必选
- 使用带有文件上载的小部件时需要 使用带有文件上载的小部件时需要
- 可选的-自定义ckeditor编辑器
- 用法
- 字段
- 小部件
- 在django admin之外 在django admin之外
- 管理命令
- 使用s3
- 如果您想使用allowedcontent,请使用
-
安装
- 插件:
- 限制文件上载
- 演示/测试应用程序
- 运行硒测试
- 运行代码质量测试
- 故障排除
- 示例ckeditor configuration
- 由创建
- 贡献者
安装
必需的
在python路径中安装或添加django-ckeditor。
阿尔法。1。阿尔法。在安装的
运行 collectstatic 管理命令:
。这将把静态ckeditor所需的媒体资源复制到集合给定的目录中。有关详细信息,请参见django关于管理静态文件的文档。 ckeditor需要知道其资产的位置,因为它会加载它们 只有在需要的时候才懒洋洋的。位置在 ckeditor-init.js中确定 脚本。默认为 static/ckeditor/ckeditor/ 。这并不都有效 例如,当使用 manifestStaticFilestorage 时,任何资产 包装管道之类的。django-ckeditor非常擅长自动 即使在那时也能检测到正确的位置,但有时你必须硬编码 ckeditor在某个地方有基址路径。这可以在设置中硬编码,即:
阿尔法。2。阿尔法。 可以覆盖 管理/更改 这个,即: 阿尔法。3。 当然,在使用 ck管理员应用程序之外的编辑器。
在文件上载时使用小部件所需的
在安装的
在项目的 setting s.py/tt>文件中添加一个 ckeditor has been upload certified path 设置。此设置指定指向ckeditor媒体上载目录的相对路径。ckeditor使用django的存储api。默认情况下,django使用文件系统存储后端(它将使用 媒体
和 媒体nd如果不使用其他后端,则必须对 媒体根目录中的 ckeditor_upload_path 路径具有写权限,即: CKEDITOR_UPLOAD_PATH = "uploads/"
使用默认文件系统存储时,图像将上载到 媒体根目录中的"uploads"文件夹,并根据 媒体URL创建URL。 ( /media/uploads/image.jpg )。
如果希望能够控制文件名生成,则必须将自定义文件名生成器添加到设置中:
# utils.py def get_filename(filename): return filename.upper()
# settings.py CKEDITOR_FILENAME_GENERATOR = 'utils.get_filename'
ckeditor已经用django文件系统存储和s3botostorage进行了测试。 使用django storages中的s3storage时出现问题。
对于默认的文件系统存储配置, 媒体根目录 和 媒体url 必须正确设置,媒体文件才能正常工作(就像由ckeditor小部件上载的那些文件一样)。
将ckeditor url include添加到项目的 url s.py 文件:
url(r'^ckeditor/', include('ckeditor_uploader.urls')),
请注意,通过添加这些url,您可以添加可以上载和浏览已上载图像的视图。自从django ckeditor 4.4.6以来,这些视图都是使用 @staff\u member\u required 进行修饰的。如果您想要一个不同的权限装饰器( 需要登录名 , 用户通过测试 等),那么将 ckeditor.url中定义的视图手动添加到您的url.py。
可选-自定义ckeditor编辑器
向项目的 setting s.py 文件添加ckeditor_configs设置。这将指定传递给ckeditor的ckeditor设置集(请参见ckeditor的 设置配置 ,即:
CKEDITOR_CONFIGS = { 'awesome_ckeditor': { 'toolbar': 'Basic', }, }
当实例化richtextfield时,可以引用设置的名称:
content = RichTextField(config_name='awesome_ckeditor')
当实例化ckeditorwidget时,可以引用设置的名称:
pip install django-ckeditor
0通过指定一个名为 default 的集合,您将把它的设置应用于所有尚未显式定义 配置名 的richtextfield和ckeditorwidget对象
pip install django-ckeditor
1可以创建自定义工具栏
pip install django-ckeditor
2如果您想要或需要不属于django ckeditor的插件 插件集您可以按如下方式指定资产和插件:
pip install django-ckeditor
3
文件上传的可选选项
默认情况下,所有上传的文件都会被删除。要禁用此功能,请将
ckeditor_upload_slugify_filename
设置为
false
在项目的
setting s.py
文件(默认值
false
)中,将
ckeditor_restrict_by懔u user
设置设置设置为
true
。这限制了上传用户对上传图像的访问(例如,每个用户只看到并上传自己的图像)。上传路径的前缀是由
get_username
返回的字符串。如果设置为字符串,则使用命名属性。超级用户仍然可以看到所有图像。
注意
:此限制仅在ckeditor Media Browser中实施。
将
ckeditor_browse_show_dirs
设置设置为
true
以在"浏览服务器"页上显示目录。这样可以按存储的目录对图像进行分组,并按日期排序。
将
ckeditor_restrict_by_date设置设置为
true
以按年/月/日压缩上载的文件。
您可以在设置中的
ckeditor_storage_backend
变量下定义ckeditor uploader的自定义文件存储。
您可以将
ckeditor_image_backend
设置为支持的后端之一,以在ckeditor gallery中启用缩略图。
默认情况下,不创建缩略图,并使用全尺寸图像作为预览。
支持的后端:
-
枕头
:使用枕头
使用
枕头
后端,您可以使用
ckeditor_thumbnail_size
设置(以前的
thumbnail_size
设置)更改缩略图大小。
默认值:(75,75)
使用
枕头
后端,您可以将上传的图像转换并压缩为JPEG格式,以节省磁盘空间。
将
ckeditor_force_jpeg_compression设置设置为
true
(默认值
false
)
您可以更改
ckeditor_image_quality
设置(以前的
image_quality
),该设置传递到枕头:
< Buff行情>
图像质量,范围从1(最差)到95(最佳)。默认值为75。值高于95
应避免;100禁用部分JPEG压缩算法,并导致
图像质量几乎没有任何提高的大文件。
对动画图像禁用此功能。
默认情况下,所有上传的文件都会被删除。要禁用此功能,请将 ckeditor_upload_slugify_filename 设置为 false
在项目的 setting s.py 文件(默认值 false )中,将 ckeditor_restrict_by懔u user 设置设置设置为 true 。这限制了上传用户对上传图像的访问(例如,每个用户只看到并上传自己的图像)。上传路径的前缀是由 get_username 返回的字符串。如果设置为字符串,则使用命名属性。超级用户仍然可以看到所有图像。 注意 :此限制仅在ckeditor Media Browser中实施。
将 ckeditor_browse_show_dirs 设置设置为 true 以在"浏览服务器"页上显示目录。这样可以按存储的目录对图像进行分组,并按日期排序。
将 ckeditor_restrict_by_date设置设置为 true 以按年/月/日压缩上载的文件。
您可以在设置中的 ckeditor_storage_backend 变量下定义ckeditor uploader的自定义文件存储。
您可以将 ckeditor_image_backend 设置为支持的后端之一,以在ckeditor gallery中启用缩略图。 默认情况下,不创建缩略图,并使用全尺寸图像作为预览。 支持的后端:
- 枕头 :使用枕头
使用 枕头 后端,您可以使用 ckeditor_thumbnail_size 设置(以前的 thumbnail_size 设置)更改缩略图大小。 默认值:(75,75)
使用 枕头 后端,您可以将上传的图像转换并压缩为JPEG格式,以节省磁盘空间。 将 ckeditor_force_jpeg_compression设置设置为 true (默认值 false ) 您可以更改 ckeditor_image_quality 设置(以前的 image_quality ),该设置传递到枕头:
< Buff行情>图像质量,范围从1(最差)到95(最佳)。默认值为75。值高于95 应避免;100禁用部分JPEG压缩算法,并导致 图像质量几乎没有任何提高的大文件。
对动画图像禁用此功能。
用法
字段
向模型添加富文本编辑功能的最快方法是使用包含的 rich text field 模型字段类型。ckeditor小部件被呈现为表单字段,但在所有其他方面,该字段的行为都是标准的django textfield 。例如:
pip install django-ckeditor4
对于文件上载支持,请使用 ckeditor_uploader.fields中的 richtextuploadingfield
小部件
通常,您可以使用包含的 ckeditorwidget 作为表单字段的小部件。例如:
pip install django-ckeditor5
对于文件上载支持,请使用 ckeditor上载程序中的 ckeditor上载程序.widgets
覆盖小部件模板
在django 1.11和2.x中,覆盖 ckeditor/widget.html 有两种方法:
将 ckeditor/widget.html 放在 基本目录/模板中
- 将 form_renderer 更改为 templatesettings
pip install django-ckeditor
6- 在目录中包含 模板 文件夹
pip install django-ckeditor
7- 将"django.forms"添加到已安装的应用程序中
将 ckeditor/widget.html 放在 您的应用程序/模板中,并将 'ckeditor' 和 'ckeditor上载程序' 放在 已安装的应用程序中
在django管理之外
当您在管理面板外呈现表单时,必须确保所有表单媒体都存在,以便编辑器工作。实现这一点的一种方法是这样:
pip install django-ckeditor8
或者您也可以像在演示应用程序中那样手动加载媒体:
pip install django-ckeditor9
当您需要在模板中安全地呈现richtextfield的html输出时,只需使用django的安全过滤器
管理命令
包含一个管理命令,用于为 ckeditor_upload_path 中已包含的图像创建缩略图。当对现有图像使用django ckeditor时,这对于创建缩略图非常有用。发出如下命令:
CKEDITOR_BASEPATH = "/my_static/ckeditor/ckeditor/"0
注意 :如果使用自定义视图,请记住通过 {{form.media} 或通过 <;script>; 标记将ckeditor.js包含在表单的媒体中。管理员将自动为您执行此操作。有关详细信息,请参见django的表单媒体文档。
使用s3
参见 https://django storages.readthedocs.org/en/latest/
注意: django ckeditor 在没有这一行设置的情况下,将无法与s3一起通过 django存储进行工作。py :
CKEDITOR_BASEPATH = "/my_static/ckeditor/ckeditor/"1
如果要使用AllowedContent,请使用
要使允许的内容工作,请禁用样式表分析器插件。 因此,请将其包含在您的设置中。py.:
CKEDITOR_BASEPATH = "/my_static/ckeditor/ckeditor/"2
插件:
django ckeditor包含以下ckeditor插件,但并非所有插件都默认启用:
CKEDITOR_BASEPATH = "/my_static/ckeditor/ckeditor/"3
图像/文件上载功能由 upload image 插件完成。
限制文件上传
- 若要将上载功能仅限于图像文件,请在settings.py文件中添加 ckeditor_allow_nonimage_files=false 。默认情况下,当前允许使用非图像文件。
- 默认情况下,上载和浏览URL使用staff_member_required decorator-ckeditor_uploader/urls.py-如果您希望其他decorator只插入在该url.py中找到的两个URL,而不包括它。
演示/测试应用程序
如果克隆存储库,您将能够运行 ckeditor_demo 应用程序。
- pip安装 -r ckeditor_demo_requirements.txt
- 运行python manage.py migrate
- 如果要在"管理"面板中测试小部件,请创建超级用户
- 启动开发服务器。
在主页面(/)上有一个forms.form,在admin中有一个模型,它使用小部件作为模型字段。 数据库设置为sqlite3,静态/media根设置为临时目录中的文件夹。
运行硒测试
您可以使用python manage.py test ckeditor_demo(仅用于repo签出)或配置为使用python 2.7和3.4运行的 tox来运行测试。
运行代码质量测试
创建一个新的virtualenv,安装tox并运行到flake8(pep8和其他质量检查)测试或tox。="pre">py27 isort 到 isort(进口订单检查) 测试
故障排除
如果您的浏览器在图像上载窗口中显示上载的图像时出现问题,您可能需要更改django设置:
CKEDITOR_BASEPATH = "/my_static/ckeditor/ckeditor/"4
CKeditor配置示例
CKEDITOR_BASEPATH = "/my_static/ckeditor/ckeditor/"5