如何将FilePond指向django媒体文件

时间:2019-02-15 11:30:06

标签: javascript django filepond

我正在使用FilePond.js允许用户在网站上拖放图像。我正在尝试设置FilePond以检索用户照片输入。显然,我打算在媒体链接中添加要将照片上传到的位置。像这样:

 <script>
    FilePond.registerPlugin(FilePondPluginImagePreview);
    const inputElement = document.querySelector('input[type="file"]');
    const pond = FilePond.create(inputElement);

    FilePond.setOptions({
      server: "#" *** I have tried everthing possible as a server option, nothing works***
    });
</script>


def add(request):
if request.method == "POST":
    product_title = request.POST.get("product_title")
    product_price = request.POST.get("product_price")
    product_description = request.POST.get("product_description")
    product_images = request.FILES.getlist('filepond')
    request.user.product_set.create(product_title = product_title,product_price =product_price, product_description = product_description, product_images = product_images)
return render(request,"main/add.html")


class product(models.Model):
  user = models.ForeignKey(User, on_delete=models.CASCADE)
  product_title =  models.CharField(max_length=100, blank=True)
  product_price =  models.CharField(max_length=30, blank=True)
  product_description =  models.CharField(max_length=1000, blank=True)
  product_images = models.FileField()

但是我似乎无法让FilePond将图像上传到Django媒体URL。我的问题是如何指向FilePond上传到要存储我的照片的URL?我知道如何从用户输入中收集图像的唯一方法是获取请求。还可以仅使用get请求来检索用户提交的FilePond图像并将其上传到数据库吗?

P.S我试图指向FilePond以便将其上传到开发服务器上的媒体URL。哪个是http://www.example.local:8000/media

2 个答案:

答案 0 :(得分:1)

处理/media的后端脚本应接受来自名为filepond的字段的POST请求。参见FilePond docs on how to configure the field name

看看Django docs on file uploads,我想这就是您在Django中检索文件的方式:

request.FILES['filepond']

如果该字段设置为multiple

files = request.FILES.getlist('filepond')

因此,如果相应地调整Django脚本,您应该会看到文件对象出现在后端。

答案 1 :(得分:0)

我为django编写了一个小助手应用程序:

django-filepond

它使您可以通过上传路径指定要为其上传内容的应用,并可以编写自定义上传处理程序,然后将上传的文件与正确的模型进行匹配。

它处于早期阶段,但也许有帮助。