我在django中有一个文件上传视图。我有一个模型表格。在POST方法中, request.FILES 包含所有文件。
我想在request.FILES中对上传的文件做一些额外的工作。我在本地保存了文件并做了一些额外的工作。但是我无法在request.FILES中分配文件。
我做了一个字典 -
data_dict = {
'a_file': open(tmp_dir + "/a_repro.a", 'r'),
'b_file': open(tmp_dir + "/b_repro.b", 'r'),
'c_file': open(tmp_dir + "/c_repro.c", 'r'),
'd_file': open(tmp_dir + "/d_repro.d", 'r'),
}
但我不能指定像 -
form = MyUploadForm(request.POST, data_dict)
,或者
request.FILES = data_dict
但它不起作用。我该怎么办?
答案 0 :(得分:1)
您无需动态request.FILES
。因为,表单将采用参数data
,files
。
根据您的要求,您可以执行以下操作
files = {
'a_file': open(tmp_dir + "/a_repro.a", 'r').read(),
}
form = MyUploadForm(data=request.POST, files=files)
供参考,请参阅:https://github.com/django/django/blob/master/django/forms/forms.py#L74