我正在使用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
答案 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编写了一个小助手应用程序:
它使您可以通过上传路径指定要为其上传内容的应用,并可以编写自定义上传处理程序,然后将上传的文件与正确的模型进行匹配。
它处于早期阶段,但也许有帮助。