【问题标题】:how can i make django file upload work with valums/file-uploader我怎样才能使 django 文件上传与 valums/file-uploader 一起工作
【发布时间】:2012-04-28 05:58:09
【问题描述】:

我想让 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

问题是 valums 上传器没有将文件放入“请求”文件中,而是将其放入 POST 中,而 django 将其作为 querydic 获取。

将它与顶级代码一起使用 django 说:

“在”中找不到密钥“文件”

如果我改变:

file_content = ContentFile(request.POST)

django 说:

预期的读取缓冲区,找到 QueryDict

我可以让它工作,但我仍然想坚持django的原生文件上传,它更干净。

【问题讨论】:

    标签: ajax django file-upload upload


    【解决方案1】:

    使用request.body(如果早于1.4,则使用request.raw_post_data

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-09
      • 1970-01-01
      • 2013-03-28
      • 1970-01-01
      • 2011-06-09
      • 2013-08-24
      • 1970-01-01
      相关资源
      最近更新 更多