将Django FileUploadHandler中的数据保存到模型中

时间:2017-10-21 12:13:08

标签: python django file-upload

我创建了一个Django< FileUploadHandler的子类,它对上传文件中的行进行计数。 我想将此计数保存在模型字段中。

我的选择是什么?

我知道我可以访问FileUploadHandler中的request - 我应该将行数计算在会话中吗?

1 个答案:

答案 0 :(得分:0)

我找到的解决方案是将聚合信息粘贴到返回的类文件对象中:

class TemporaryFileUploadHandler(DjangoTemporaryFileUploadHandler):
    def new_file(self, *args, **kwargs):
        super(TemporaryFileUploadHandler, self).new_file(*args, **kwargs)
        self.line_count = 1

    def receive_data_chunk(self, raw_data, start):
        self.file.write(raw_data)
        self.line_count += raw_data.count(b'\n')

    def file_complete(self, file_size):
        fobj = super(TemporaryFileUploadHandler, self).file_complete(file_size)
        setattr(fobj, 'line_count', self.line_count)
        return fobj