django 将图像文件保存在静态目录中

django save imagefile in static dir

我有一些从 http://image.eveonline.com/ 中检索到的图像要保存。现在其中一部分将是静态的,而其他的可能会发生变化。 我不想从他们的网站上提取所有静态图像,而是想在需要时执行此操作(如果尚未保存)

我如何告诉我的模型将图像场保存在静态或媒体中

示例模型:

class ItemIcon(models.Model):
    item = models.ForeignKey("items.Item")
    size = models.IntegerField(choices=settings.IMAGE_SIZES)
    url = models.URLField(unique=True) #The url to the evesite
    image = models.ImageField(upload_to="static/images/items/")

(此模型应静态保存)

您需要在 settings.py 中设置 MEDIA_URLMEDIA_ROOT,然后像这样定义图像字段:

image = models.ImageField(upload_to="items")

请注意,您不需要将整个路径添加到 upload_to 属性,Django 会为您附加绝对路径。并且您的媒体文件夹中需要有一个名为 items 的文件夹。

如果您想将图像保存在 STATIC_ROOT 中,试试这个:

from django.conf import settings

fs = FileSystemStorage(location=settings.STATIC_ROOT)

class ItemIcon(models.Model):
   item = models.ForeignKey("items.Item")
   size = models.IntegerField(choices=settings.IMAGE_SIZES)
   url = models.URLField(unique=True) #The url to the evesite
   image = models.ImageField(upload_to="items",storage=fs)