Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Python/Django中的ckeditor中启用图像上载按钮_Javascript_Python_Django_Ckeditor - Fatal编程技术网

Javascript 在Python/Django中的ckeditor中启用图像上载按钮

Javascript 在Python/Django中的ckeditor中启用图像上载按钮,javascript,python,django,ckeditor,Javascript,Python,Django,Ckeditor,我在我的一个Python/Django项目中使用ekeditor。我已经用create_editor('id_of_field')启用了编辑器,但是我想在这个编辑器中使用图像上传按钮,我不知道如何操作。我读过ckeditor的文档,但这些文档主要是针对PHP和.NET的。但我希望Django也能这样(不过这个编辑器使用JS,所以语言并不重要)。我在文档中找到了这个代码 CKEDITOR.replace( 'editor1', { filebrowserBrowseUrl

我在我的一个Python/Django项目中使用ekeditor。我已经用
create_editor('id_of_field')
启用了编辑器,但是我想在这个编辑器中使用图像上传按钮,我不知道如何操作。我读过ckeditor的文档,但这些文档主要是针对PHP和.NET的。但我希望Django也能这样(不过这个编辑器使用JS,所以语言并不重要)。我在文档中找到了这个代码

CKEDITOR.replace( 'editor1',
    {
        filebrowserBrowseUrl : '/browser/browse.php',
        filebrowserUploadUrl : '/uploader/upload.php'
    });

但是在我的例子中,我必须在这里提到哪些文件,因为我使用的不是PHP而是Python/Django。

默认情况下,CKEditor不包括文件浏览器或上传程序。但是,您可以使用或使用现有的产品,如,然后配置CKEditor以使用它,这要归功于它的功能


上面引用的代码将CKEditor配置为使用一些
browse.php
upload.php
文件中定义的自定义文件浏览器,但这并不是什么魔术-这些只是一些文件浏览器的自定义脚本。在您的情况下,您可以使用自己的文件上载功能或现成的解决方案替换它们。

我最近解决了相同的问题。首先,上载选项卡隐藏在图像插件对话框中。您必须在image.js对话框文件中搜索上载选项卡,并将字段“hidden”更改为false

现在对于Django/Python,您必须提供处理图像上传的视图的url。对于ex-/editor/upload

config.filebrowserImageUploadUrl = '/editor/upload/';
在config.js文件中

在视图中有一段代码,您必须处理从请求中提取文件并将其保存在Django项目的媒体目录中

您可以从django ckeditor获得帮助。我阅读了django ckeditor的完整代码,并使用django ckeditor的方式实现了上传功能

还有一件事,django ckeditor在上载图像时不处理csrf保护,因此您可能必须更改前端的某些内容,以处理将发送到django后端的POST数据。为此,请检查此链接-


首先试试这个,如果你有任何问题,请告诉我。

我和你有同样的问题。在
django-ckeditor
GitHub页面上,他们写道(强调我自己):

提供RichTextField、RichTextUploadingField、CKEditorWidgetCKEditorUploadingWidget使用CKEditor,包括图像上传和浏览支持

在我的
forms.py中
为我的文本

class BlogPostForm(forms.ModelForm):
    text = forms.CharField(widget=CKEditorWidget())
这给了我和你一样的编辑。我把它改成了

class BlogPostForm(forms.ModelForm):
    text = forms.CharField(widget=CKEditorUploadingWidget())
这给了我一个标签,可以从我的电脑上传一张图片,然后上传到我的
MEDIA\uurl
,就像人们期望的那样