如何将 NamedTemporaryFile 保存到 Django 中的模型 FileField 中?

Gré*_*het 5 django upload model file temporary-files

我创建了一个 NamedTemporaryFile,在其中添加了一些内容,现在我想将它保存到模型 FileField 中。

问题是我得到了一个 SuspiciousOperation,因为 tmp 目录不在 FileSystemStorage 目录中。

这样做的正确方法是什么?

rom*_*rcz 4

您希望 django 为您检查它,因为它确保文件放置在 MEDIA_ROOT 目录中,以便可以下载。

在任何情况下,您想将文件放在 MEDIA_ROOT 之外(在本例中为“/tmp”),您应该执行以下操作:

from django.core.files.storage import FileSystemStorage
fs = FileSystemStorage(location='/tmp')

class YourModel(models.Model):
    ...
    file_field = models.FileField(..., storage=fs)
Run Code Online (Sandbox Code Playgroud)

请参阅Django 文档