Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.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

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 如何正确集成Filepicker.io、Django和S3_Python_Django_Filepicker.io - Fatal编程技术网

Python 如何正确集成Filepicker.io、Django和S3

Python 如何正确集成Filepicker.io、Django和S3,python,django,filepicker.io,Python,Django,Filepicker.io,我正在制作一个Django应用程序,它允许用户通过管理界面上传图片,然后通过API端点访问这些图片的URL。在管理界面上,应向用户提供Filepicker.io小部件(以启用拖放功能等),并将文件上载到S3。我已经将我的S3凭据输入我帐户的Filpicker管理页面 我的问题是如何将所有这些要素结合在一起。以下是我的项目中的相应文件: # models.py from django.db import models from django_filepicker.models import FPF

我正在制作一个Django应用程序,它允许用户通过管理界面上传图片,然后通过API端点访问这些图片的URL。在管理界面上,应向用户提供Filepicker.io小部件(以启用拖放功能等),并将文件上载到S3。我已经将我的S3凭据输入我帐户的Filpicker管理页面

我的问题是如何将所有这些要素结合在一起。以下是我的项目中的相应文件:

# models.py
from django.db import models
from django_filepicker.models import FPFileField

# Add field introspection for FPFileField 
# See http://south.aeracode.org/wiki/MyFieldsDontWork
from south.modelsinspector import add_introspection_rules
add_introspection_rules([], ["^django_filepicker\.models\.FPFileField"])

class Product(models.Model):
    product_logo = FPFileField(upload_to='uploads')


我的问题是:

  • Django管理界面显示普通的Django文件字段小部件,而我想要的是FPFileWidget
  • 我希望将图像文件上载到S3(而不是我站点的/media目录)
  • 我想检索S3 URL,而不是/media/xxxx URL 例如,当前的典型响应是:

    [
      "/media/uploads/fp-file", 
      "/media/uploads/fp-file_1", 
      "/media/uploads/fp-file_2", 
      "/media/uploads/fp-file_3", 
      "/media/uploads/fp-file_4", 
      "/media/uploads/fp-file_5"
    ]
    
    但我想要的是:

    [
      "https://s3-ap-southeast-2.amazonaws.com/XXXXXXXXX/TBtOcRSNyBAZZuNBFOpA_blah.png", 
      "https://s3-ap-southeast-2.amazonaws.com/XXXXXXXXX/8ODleDuKRIOAglFs0sKl_etc.png", 
    ]
    


    您需要将
    默认存储\u后端
    更改为
    s3
    存储后端。请看一看

    要使用管理面板上的
    FPFileWidget
    ,请查看


    更改这两个设置应该适合您。

    您需要将
    默认存储\u后端
    更改为
    s3
    存储后端。请看一看

    要使用管理面板上的
    FPFileWidget
    ,请查看


    更改这两个设置应该对您有用。

    请查看FPUrlField,它将提供您所需的内容。当前的FP*字段没有管理接口,但是如果您想返回代码,我们很乐意接受一个pull请求。看看FPUrlField,它应该会满足您的需要。当前的FP*字段没有管理接口,但是如果您想返回代码,我们很乐意接受拉取请求

    谢谢!我已经解决了问题1。使用你的链接。我会去查一下django Storages如果你们还有什么困难,请告诉我。嘿,伙计们,@psjinx,我有个问题。我已经修改了我的默认存储后端,但似乎文件被上传到filepicker,然后是s3,在filepicker模式和表单提交上。有没有办法让filepicker上的文件与我的模型的FPFileField相关联,而不是再次上传到s3?提前感谢。FPFileField不存储fpurl。请查看URLFileMapPermiddware在
    请求中为您提供的上载文件。文件
    ,但您在
    请求中也会获得实际URL。POST
    。谢谢!我已经解决了问题1。使用你的链接。我会去查一下django Storages如果你们还有什么困难,请告诉我。嘿,伙计们,@psjinx,我有个问题。我已经修改了我的默认存储后端,但似乎文件被上传到filepicker,然后是s3,在filepicker模式和表单提交上。有没有办法让filepicker上的文件与我的模型的FPFileField相关联,而不是再次上传到s3?提前感谢。FPFileField不存储fpurl。请查看URLFileMapPermiddware在
    请求中为您提供的上载文件。文件
    ,但您在
    请求中也会获得实际URL。POST
    。谢谢Brett。现在,FPFileField的url字段指向该字段,尽管没有指向S3,但它比上传到/mediabrett的文件要好。现在,FPFileField的url字段指向哪个位置,尽管没有指向S3,但它比上传到/media的文件要好
    [
      "/media/uploads/fp-file", 
      "/media/uploads/fp-file_1", 
      "/media/uploads/fp-file_2", 
      "/media/uploads/fp-file_3", 
      "/media/uploads/fp-file_4", 
      "/media/uploads/fp-file_5"
    ]
    
    [
      "https://s3-ap-southeast-2.amazonaws.com/XXXXXXXXX/TBtOcRSNyBAZZuNBFOpA_blah.png", 
      "https://s3-ap-southeast-2.amazonaws.com/XXXXXXXXX/8ODleDuKRIOAglFs0sKl_etc.png", 
    ]