我有一个程序在后台运行,它将图像输出到我的服务器上的特定文件夹,并且这可能会以不同的时间间隔发生。我需要能够在模板上显示这些图像,因此我想使用 ImageField
将它们保存到数据库中。
我的问题是我如何继续将它们保存到数据库中?我可以在后台任务上沿着 os.listdir(dir) 执行某些操作并将其直接保存到数据库吗?还是需要图像的完整路径?
我已经为此创建了模型
class Usertasks(models.Model):
TaskID = models.CharField(max_length=55)
user = models.ForeignKey(User, unique=False, on_delete=models.CASCADE)
TaskStatus = models.CharField(max_length=15, default="missing")
class TaskImages(models.Model):
UserTasks = models.ForeignKey(Usertasks, related_name='images', on_delete=models.CASCADE)
image = models.ImageField()
最佳答案
是的,您可以迭代目录并将每个文件保存到模型中:
from django.core.files import File
with open('path_to_file', 'rb') as f:
data = File(f)
TaskImages.image.save('filename', data, True)
也许更棘手的是你什么时候调用这个保存,以及你打算多久调用一次?
关于python - 将后台任务抓取的图像保存到 ImageField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58626671/