【发布时间】:2010-11-17 01:31:32
【问题描述】:
在 Django 中,我想在收到任何未以我指定的扩展名结尾的文件上传后立即停止它们。为此,我定义了一个自定义上传处理程序并将 new_file 编写为如下所示:
def new_file(self, field_name, file_name, content_type, content_length, charset=None):
basename, extension = os.path.splitext(file_name)
if extension != ".txt":
raise StopUpload(True) # Error: Only .txt files are accepted
这可以很好地停止上传,但它也会清除 request.FILES。现在,当我的视图收到请求时,它无法判断上传处理程序是否导致文件丢失,并且我无法向用户显示有用的消息。
有没有办法将消息从上传处理程序传播到相应的视图,以便我可以向用户显示错误?我试过使用请求对象,但它是不可变的。
【问题讨论】: