Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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
Python ckeditor_上传器动态图像上传路径_Python_Django_Ckeditor_Django Ckeditor - Fatal编程技术网

Python ckeditor_上传器动态图像上传路径

Python ckeditor_上传器动态图像上传路径,python,django,ckeditor,django-ckeditor,Python,Django,Ckeditor,Django Ckeditor,我有一个Django应用程序,它要求用户在每个文档中上载多个图像。应用程序已安装django ckeditor,但上载的图像最终位于通过ckeditor\u UPLOAD\u路径设置设置的同一文件夹中。我希望路径是动态的,基于URL方案 例如,在https://myapp/report/1/finding/5应位于/ckeditor\u base\u path/report/1/finding/5/my\u img.png中 不幸的是,处理设置路径的视图函数的URL是由小部件()在视图创建上下文

我有一个Django应用程序,它要求用户在每个文档中上载多个图像。应用程序已安装django ckeditor,但上载的图像最终位于通过
ckeditor\u UPLOAD\u路径设置设置的同一文件夹中。我希望路径是动态的,基于URL方案

例如,在
https://myapp/report/1/finding/5
应位于
/ckeditor\u base\u path/report/1/finding/5/my\u img.png

不幸的是,处理设置路径的视图函数的URL是由小部件()在视图创建
上下文
参数之前设置的


我希望将参数发送到URL参数进行处理。非常感谢您在这方面提供的任何帮助或建议。

如果这对其他人有帮助,以下是我所做的。当用户浏览时,他们将被限制在包含查找图像的文件夹中,因为它们特定于报告的该部分。同样,上传图像将把它发送到同一个文件夹

简而言之,您必须:

  • 将CKEditor上载程序URL指向您的视图版本
  • 通过相应的表单视图更新CKEditor Uploader小部件
  • 覆盖CKEditor上载程序
    ImageUploadView
    browse
    视图以创建所需的路径
  • 例子 更新的编辑器URL路径
    我也遇到了同样的问题,并看了你的答案,但我认为有一个可能更容易的解决办法

    对于要执行的每个“唯一”上载操作,请在
    settings.py
    中创建一个新配置:

    CKEDITOR_CONFIGS = {
        'action_a' : {
            'filebrowserUploadUrl': '/path/to/action/a/handling/view/'
        },
        'action_b' : {
            'filebrowserUploadUrl': '/path/to/action/b/handling/view/'
        }
    }
    
    创建表单时,将
    CKEditorUploadingWidget
    config\u name
    设置为所需操作

    如果您不需要处理任何URL参数,比如在我的例子中,我只想将通过不同编辑器界面上传的文件放在不同的目录中,那么接下来的步骤相对简单。在相应视图中处理并保存上载的文件

    但是,如果确实需要根据URL参数执行操作,则可以在相应的视图中检查
    请求
    ,以获取上载文件的页面:

    referrer = request.META.get('HTTP_REFERER')
    
    然后,您可以从URL中提取所需的参数(在本例中为报告ID和查找ID),并使用它们上载到您想要的任何目录

    CKEDITOR_CONFIGS = {
        'action_a' : {
            'filebrowserUploadUrl': '/path/to/action/a/handling/view/'
        },
        'action_b' : {
            'filebrowserUploadUrl': '/path/to/action/b/handling/view/'
        }
    }
    
    referrer = request.META.get('HTTP_REFERER')