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

时间:2015-02-19 01:16:37

标签: django static imagefield

我有一些我想要保存的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/")

(此模型应保存为静态)

1 个答案:

答案 0 :(得分:3)

您需要在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)