我想让 valums/file-uploader 与 django 上传一起运行,将它与模型字段(FileField)一起使用
基本的django模型:
class Image(models.Model):
user = models.ForeignKey(User)
url = models.FileField(upload_to='%Y/%m/%d')
基本视图,使用非 ajax 上传:
def ajax_upload(request):
if request.method == 'POST':
newfile = Image()
newfile.user = request.user
file_content = ContentFile(request.FILES['file'].read())
file_name = request.FILES['file'].name
newfile.url.save(file_name, file_content)
results = {'url': newfile.url, 'id': newfile.id}
return HttpResponse(json.dumps(results))
raise Http404
问题是值上传器没有将文件放入“请求”文件中,而是将其放入 POST 中,而 django 将其作为 querydic 获取。
将它与顶级代码一起使用 django 说:
“在”中找不到密钥“文件”
如果我改变:
file_content = ContentFile(request.POST)
django 说:
预期的读取缓冲区,找到 QueryDict
我可以让它工作,但我仍然想保留 django 的本地文件上传,它更干净。