from stuff.models import Item from django.conf import settings from datetime import datetime from decimal import Decimal import csv item_types = { 'Book':0, 'Apparel': 1,'Gadget': 2, 'Furniture': 3} """ csv_file = csv.DictReader(open('stuff.csv', 'rb'), delimiter=',') for line in csv_file: if line['release date'][:-6] != '': date_released = datetime.strptime(line['release date'][:-6], "%Y-%m-%d %H:%M:%S") else: date_released = None if line['purchase date'][:-6] != '': date_purchased = datetime.strptime(line['purchase date'][:-6], "%Y-%m-%d %H:%M:%S") else: date_purchased = None if line['creation date'][:-6] != '': date_added = datetime.strptime(line['creation date'][:-6], "%Y-%m-%d %H:%M:%S") else: date_added = None item_type = int(item_types[line['item type']]) if line['current value'][1:] != '': try: current_price = Decimal(line['current value'][1:].replace(",", "")) except: current_price = None else: current_price = None if line['retail price'][1:] != '': try: retail_price = Decimal(line['retail price'][1:].replace(",", "")) except: retail_price =None else: retail_price =None if line['purchase price'][1:] != '' and line['purchase price'] != "Gift": try: purchase_price = Decimal(line['purchase price'][1:].replace(",", "").replace('\\xa0', ' ')) except: purchase_price =None else: purchase_price =None i, created = Item.objects.get_or_create( isbn = line['ISBN'], serial_number = line['serial number'], type = item_type, title = line['title'], creator = line['creator'], current_price = current_price, retail_price = retail_price, purchase_price = purchase_price, amazon_url = line['amazon link'], image_url = line['coverImageLargeURLString'], format = line['format'], date_released = date_released, date_purchased = date_purchased, date_added = date_added ) print created, i.title """ import datetime import os import io import urllib from django.contrib.contenttypes.models import ContentType from django.template.defaultfilters import slugify from django.core.exceptions import ObjectDoesNotExist from django.conf import settings # Required PIL classes may or may not be available from the root namespace # depending on the installation try: import Image import ImageFile import ImageFilter import ImageEnhance except ImportError: try: from PIL import Image from PIL import ImageFile from PIL import ImageFilter from PIL import ImageEnhance except ImportError: raise ImportError("Could not import the Python Imaging Library.") ImageFile.MAXBLOCK = 1000000 def grab_item_image(item): crop_dir = settings.IMAGES_ROOT + '/stuff/' if not os.path.isdir(crop_dir): os.makedirs(crop_dir) remote = item.image_url try: fname = urllib.request.urlopen(remote) except: return False im = io.BytesIO(fname.read()) img = Image.open(im) ext = slugify(item.title)[:40] filename = '%s/%s.jpg' %(crop_dir, ext) try: if img.format == 'JPEG': img.save(filename, 'JPEG', quality=95, optimize=True) else: img.save(filename) except IOError: if os.path.isfile(filename): os.unlink(filename) pass return 'images/stuff/%s.jpg'%(ext)