在管理命令中从 Django 数据库保存图像

Saving images from Django database in a management command

I've found out how to load images from the file system into Django,但是你怎么把它们弄出来呢?

我已经弄清楚如何在我的管理命令中从数据库中获取内容,并且可以执行如下查询:

for m in my_models.objects.filter(get=some):
    image = m.image 
    # How do I copy this to another non-django location?

图像(或其他 FileFields)实际上是存储在某个地方(如文件系统或像 S3 这样的块存储)的常规文件。假设您的文件驻留在服务器的文件系统上,您可以使用 path 属性 获取原始文件路径并使用 Python shell 实用程序将其复制到另一个位置:

import shutil

for m in my_models.objects.filter(get=some):
    image = m.image 
    shutil.copy(image.path, '/var/tmp/')