2015-02-19 4 views
0

У меня есть некоторые изображения, которые я получаю от http://image.eveonline.com/, которые я хочу сохранить. Теперь часть из них будет статичной, а другие могут измениться. Вместо того, чтобы тянуть все статические изображения с их сайта, я хочу, чтобы это сделать, когда они необходимы (если они еще не сохранены)django save файл изображения в статическом каталоге

Как я могу сказать, моя модель, чтобы сохранить ImageField в статике или в средствах массовой информации

Пример модели:

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/") 

(эта модель должна быть сохранена в статике)

ответ

3

вам необходимо установить MEDIA_URL и MEDIA_ROOT в вашем settings.py, а затем определить ваше поле изображения, как это:

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) 
+0

Я получил мои средства массовой информации работают. Мне просто интересно, как я могу позволить сохранять изображение в STATIC_URL/STATIC_ROOT –