python - Django 文件上传和模型 FileField

标签 python django file upload

我太接近了……但我不太清楚从上传 View 到模型的联系。当我在模型的 FileField 中使用回调时,上传工作正常,但我不确定实际文件复制发生在哪里。目标是确保 chunking 正在发生,但文件复制操作似乎隐藏在某处?

这是我所拥有的:

型号:

def get_media_upload_dir(instance, filename):
    user_id  = instance.user.id
    upload_dir = "%s/%d/%s" % (settings.MEDIA_ROOT, user_id, filename)
    print "Upload dir set to: %s" % upload_dir
    return upload_dir

class MediaFile(models.Model):
    media_file     = models.FileField(upload_to=get_media_upload_dir)
    download_count = models.PositiveIntegerField(default=0)

查看:

def file_upload(request, course_id):    
    if request.method == 'POST':
        form = FileUploadForm(request.POST, request.FILES)
        if form.is_valid():
            uploaded = form.cleaned_data['file_upload']
            mediaFile = MediaFile(media_file=uploaded,
                                owner=request.user.profile,
                                creator=request.user.profile)
            mediaFile.save()

            return HttpResponseRedirect('/course/%s/' % course_id)
    else:
        form = FileUploadForm()
    return render_to_response('course/file_upload.html', {'form':form,'course':course}, context_instance=RequestContext(request))

最佳答案

存储发生在这里:http://code.djangoproject.com/browser/django/trunk/django/db/models/fields/files.py#L90 . Django 使用它自己的 API 来访问文件存储:http://docs.djangoproject.com/en/dev/ref/files/storage/ .但是,如果分块是您所需要的,那么您可以采用 Bartek 的建议!

关于python - Django 文件上传和模型 FileField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3181574/

相关文章:

python - 如何使用ctypes调用函数名带有双下划线的DLL函数?

带有 xapian 引擎的 Django-haystack : can't execute update_index if model has ManyToManyField

python - 谁能解释一下如何将 arg 或 kwargs 从重定向传递到另一个 View ?

c - C 中的重复消除

python - 解析右结合运算符(指数)

python - Bazel 从源代码构建安装 Tensorflow 时出错

python - 从任务栏删除窗口,Windows 7

python - 为什么在我离开内置运行服务器后 Django 找不到我的管理媒体文件?

C语言字符错误

java - 更改文件描述符偏移量