我正在为我的项目使用 django-ckeditor 来上传图像和文本内容。
我在模型中使用了
body = RichTextUploadingField(blank=True, null=True)。现在我想限制用户上传内容中的大尺寸图像或大于预定义的最大高度/宽度。我希望上传的图像具有特定的高度/重量和大小,例如小于 1mb。
如何预定义最大图像高度和宽度以及最大图像尺寸限制?
有没有办法从 django-ckeditor 配置中定义它?
或者如何在用户提交表单后从后端的内容调整上传的图像的大小?
这是我的models.py:
class Post(models.Model):
STATUS_CHOICES = {
('draft', 'Draft'),
('published', 'Published'),
}
title = models.CharField(max_length=250)
slug = models.SlugField(max_length=250, unique=True)
author = models.ForeignKey(User, on_delete=models.CASCADE)
body = RichTextUploadingField(blank=True, null=True)
status = models.CharField(max_length=10,
choices=STATUS_CHOICES,
default='draft')
Run Code Online (Sandbox Code Playgroud)
我尝试了很多来解决它但失败了。任何解决问题的建议?提前致谢。
我在Django管理界面的CKEditor中上传了一些图像.我可以通过单击编辑器中的"图像"按钮来浏览和选择图像,然后在弹出的窗口中单击"浏览服务器".这是弹出窗口的屏幕截图:

我的问题是:如何删除服务器上的图像?
我尝试将CKEeditor用于我的django项目,但是当我添加一个使用此编辑器的新项目时,我看到了html代码.
我用它是这样的:
我的模特:
class Article(models.Model):
title = models.CharField(max_length=100, unique=True)
slug = models.SlugField(max_length=100, unique=True)
category = models.ForeignKey('Category')
content = RichTextField()
date = models.DateTimeField(auto_now = True)
online = models.BooleanField()
Run Code Online (Sandbox Code Playgroud)
我的网址: url(r'^ckeditor/', include('ckeditor.urls')),
我的看法 :
def view_post(request, slug):
return render_to_response('website/view_post.html',
{
'post': get_object_or_404(Article, slug=slug),
},
context_instance = RequestContext(request)
)
Run Code Online (Sandbox Code Playgroud)
和我的模板:
<div id="post">
<h1> {{ post.title }}</h1>
<p>{{post.content}}</p>
<i>{{post.date}}</i>
</div>
Run Code Online (Sandbox Code Playgroud)
请帮忙.
谢谢你的回答.
我正在django-rest-framework与django-ckeditor. 我正在提供一些带有绝对 url-s 的图像,没有任何问题。但是ckeditor上传的图片和文件是作为相对路径提供的,由于在不同的域中,无法在客户端显示。
这是我得到的一个例子:
{
image: "http://example.com/media/myimage.png",
body: "<p><a href=\"/media/ckeditor/myfile.pdf\">download my file</a></p>"
}
Run Code Online (Sandbox Code Playgroud)
这就是我想要得到的:
{
image: "http://example.com/media/myimage.png",
body: "<p><a href="http://example.com/media/ckeditor/myfile.pdf\">download my file</a></p>"
}
Run Code Online (Sandbox Code Playgroud)
编辑:这将是我的示例的模型:
from django.db import models
from ckeditor_uploader.fields import RichTextUploadingField
image: models.ImageField()
body: RichTextUploadingField(blank=True,null=True)
Run Code Online (Sandbox Code Playgroud) 我目前安装了Django-CKEditor并拥有自己的自定义工具栏.
我很难找到如何启用图片上传.单击图像按钮时,我只能通过URL上传.我知道,在插件中,有处理文件浏览和上传的视图,但我不确定如何激活或使用它们.
插件上有很少的文档,所以我正在寻求帮助!
我在django1.6上安装了django-ckeditor==4.4.8
但我在工具栏中得到了最少的按钮,我尝试更改工具栏以获得更多选项,特别是能够添加图片
这就是我得到的:

这些是我的设置:
#ckeditor settings
CKEDITOR_UPLOAD_PATH = "images/"
CKEDITOR_IMAGE_BACKEND = 'pillow'
CKEDITOR_JQUERY_URL = '//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'
AWS_QUERYSTRING_AUTH = False
CKEDITOR_CONFIGS = {
'default': {
'toolbar':'Full',
},
Run Code Online (Sandbox Code Playgroud)
}
顺便说一句,我想知道当您添加图片然后从文本编辑器删除该图片链接时会发生什么,该图片是否会被删除?
我尝试将 ckeditor 6.1 添加到我的表单中,以允许用户发布文章。我按照 youtube 上的视频进行安装和设置,我成功地在 django 管理页面中使用 ckeditor 添加了新帖子。但在 html 页面中,富文本字段显示,但出现以下错误。当我只是使用 GET 方法渲染页面时(尚未提交表单),在控制台中我总是收到错误:ckeditor.js:21 [CKEDITOR] 错误代码:exportpdf-no-token-url。和提交也不起作用。我是 django 的新手,这是最后一个学校项目。我不需要导出为 PDF,如何禁用?或者任何想法,请帮忙,我已经在这里呆了几天了。
class Article(models.Model):
user = models.ForeignKey("User", on_delete=models.CASCADE, related_name='post_user')
title = models.CharField(max_length=150)
body = RichTextUploadingField(blank=True, null=True)
class Post_Form(ModelForm):
class Meta:
model = Article
exclude = ['user']
widgets = {
'title': TextInput(attrs={'class': 'form-control', 'id': 'title' }),
'body': Textarea(attrs={'rows':10, 'cols':40}),
}
Run Code Online (Sandbox Code Playgroud)
视图.py
def write_post(request):
form = Post_Form(request.POST)
return render(request, 'write_post.html', {
'form': form,
})
Run Code Online (Sandbox Code Playgroud)
设置.py
CKEDITOR_CONFIGS = {
'default': {
'height': 800,
'width': …Run Code Online (Sandbox Code Playgroud) 我正在使用 Django-ckeditor-updated 来构建一个 CMS,我正在尝试使用 Ckeditor youtube 插件(http://ckeditor.com/addon/youtube),但它没有出现在工具栏中。
我已将插件下载到 ckeditor plugins 文件夹,然后编辑CKEDITOR_CONFIGSinsettings.py以显示 youtube 插件,但它不起作用。有任何想法吗?
CKEDITOR_CONFIGS = {
'default': {
'toolbar': 'CMS',
'toolbar_CMS': [
{
'name': 'basicstyles',
'groups': ['basicstyles', 'cleanup'],
'items': ['Bold', 'Italic', 'Underline', '-', 'RemoveFormat']
},
{
'name': 'paragraph',
'groups': ['list', 'indent', 'blocks'],
'items': ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Blockquote']
},
{
'name': 'links',
'items': ['Link', 'Unlink']
},
{
'name': 'insert',
'items': ['Image', 'HorizontalRule', 'Table', 'Iframe', ]
},
{
'name': 'colors',
'items': ['TextColor', 'BGColor'] …Run Code Online (Sandbox Code Playgroud) 我正在使用django-ckeditor。现在我需要添加一个新插件。这是 我读过的,我应该下载并将其解压缩到“插件”文件夹中:
将文件内容解压到 CKEditor 的“plugins”文件夹中。
但是我的项目中没有任何“插件”文件夹。有一个,但它位于Lib\site-packages\ckeditor\static\ckeditor\ckeditor\plugin.
所以,如果我在那里添加它 - 当我将它部署到生产环境或另一台计算机上时它将不可用......
我该怎么办?
我想为使用django-ckeditor/uploader上传的图像创建随机uid文件名.
我utils.py在同一个文件夹中创建了settings.py:
import uuid
def get_name_uid():
ext = filename.split('.')[-1]
filename = "%s.%s" % (uuid.uuid4(), ext)
return filename
Run Code Online (Sandbox Code Playgroud)
我想将这个"随机"文件名添加到settings.py:
CKEDITOR_FILENAME_GENERATOR = get_name_uid()
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?我不知道如何获取在编辑器中上传的文件名.我应该将文件名从settings.py传递给utils.py吗?或者有不同的方法来做到这一点?
他们的文件说明如下:
``CKEDITOR_UPLOAD_PATH = "uploads/"``
When using default file system storage, images will be uploaded to "uploads" folder in your MEDIA_ROOT and urls will be created against MEDIA_URL (/media/uploads/image.jpg).
If you want be able for have control for filename generation, you have to add into settings yours custom filename generator.
``` …Run Code Online (Sandbox Code Playgroud) django ×10
django-ckeditor ×10
ckeditor ×6
python ×4
django-1.6 ×1
django-views ×1
file-upload ×1
javascript ×1
python-2.7 ×1
toolbar ×1
youtube ×1