【发布时间】:2010-10-12 17:46:20
【问题描述】:
我需要在我的 Form clean 方法中验证上传的 XML 文件的内容,但我无法打开该文件进行验证。它接缝,在 clean 方法中,文件尚未从内存(或临时目录)移动到目标目录。
例如,以下代码不起作用,因为文件尚未移动到该目标。它仍在内存中(或临时目录):
xml_file = cleaned_data.get('xml_file')
xml_file_absolute = '%(1)s%(2)s' % {'1': settings.MEDIA_ROOT, '2': xml_file}
xml_size = str(os.path.getsize(xml_file_absolute))
当我查看“cleaned_data”变量时,它会显示:
{'xml_file': <InMemoryUploadedFile: texting.nzb (application/octet-stream)>}
cleaned_data.get('xml_file') 仅将“texting.nzb”作为字符串返回。
还有其他方法可以访问内存(或临时目录)中的文件吗?
同样,这是在我的表单的clean 方法中,该方法与默认管理视图相关联。我一次又一次地被告知所有验证都应该在表单中处理,而不是在视图中处理。对吗?
【问题讨论】: