Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django在保存前加密文件字段_Python_Django_Django Models - Fatal编程技术网

Python Django在保存前加密文件字段

Python Django在保存前加密文件字段,python,django,django-models,Python,Django,Django Models,我试图用django将PDF保存在磁盘中,这很容易。但是,我想在保存它们之前对它们进行加密。据我所知,在进行super().save()之前,我应该重写模型的save以加密文件内容 问题是我没有成功地嵌入内容,我尝试了: self.file.write(f.encrypt(self.file.read())) 但是,它不会修改任何内容。我使用fernet进行加密,但这不是问题所在,因为如果读取内容正确读取,并且如果我对其进行加密,则可以工作,但写入内容不会存储任何内容。 事实上,一旦我调用了这

我试图用django将PDF保存在磁盘中,这很容易。但是,我想在保存它们之前对它们进行加密。据我所知,在进行super().save()之前,我应该重写模型的save以加密文件内容

问题是我没有成功地嵌入内容,我尝试了:

self.file.write(f.encrypt(self.file.read()))
但是,它不会修改任何内容。我使用fernet进行加密,但这不是问题所在,因为如果读取内容正确读取,并且如果我对其进行加密,则可以工作,但写入内容不会存储任何内容。 事实上,一旦我调用了这个超级函数,它就存储在普通的内存中。 我没有看到debbuger在哪里修改文件内容,也没有看到我应该如何修改文件内容


谢谢

我想你必须使用
InMemoryUploadedFile
比如:
file=InMemoryUploadedFile(encypted捉file,'FileField',name,content捉,type,size,None)
我发现如果我写self.file.read()文件,我写的文件已经损坏,所以我不知道如何读取整个文件。看来我解决了,由于django使用该流而不是0,所以我必须执行seek(0),所以信息正在丢失。使用此函数并将file.file.file替换为我编写encrytped的自定义ByteIO()