old_contents: from django.db import models
  from django.core.files import File
  from django.core.files.temp import NamedTemporaryFile
  from django.contrib.auth.models import User
  
  import urllib2
  import hashlib
  from PIL import Image
  
  
  class Pin(models.Model):
      submitter = models.ForeignKey(User)
      url = models.TextField(blank=True, null=True)
      description = models.TextField(blank=True, null=True)
      image = models.ImageField(upload_to='pins/pin/originals/')
      thumbnail = models.ImageField(upload_to='pins/pin/thumbnails/')
      published = models.DateTimeField(auto_now_add=True)
  
  
      def __unicode__(self):
          return self.url
  
  
      def save(self, *args, **kwargs):
          if not self.image:
              temp_img = NamedTemporaryFile()
              temp_img.write(urllib2.urlopen(self.url).read())
              temp_img.flush()
              self.image.save(self.url.split('/')[-1], File(temp_img))
  
          if not self.thumbnail:
              if not self.image:
                  image = Image.open(temp_img.name)
              else:
                  super(Pin, self).save()
                  image = Image.open(self.image.path)
              size = image.size
              prop = 200.0 / float(image.size[0])
              size = (int(prop*float(image.size[0])), int(prop*float(image.size[1])))
              image.thumbnail(size, Image.ANTIALIAS)
              print image.size
              temp_thumb = NamedTemporaryFile()
              image.save(temp_thumb.name, 'JPEG')
  
              if self.url:
                  name = self.url.split('/')[-1]
              else:
                  name = self.image.name
  
              self.thumbnail.save(name, File(temp_thumb))
  
          super(Pin, self).save(*args, **kwargs)
  
  
      class Meta:
          ordering = ['-id']
  
new_contents: from django.db import models
  from django.core.files import File
  from django.core.files.temp import NamedTemporaryFile
  from django.contrib.auth.models import User
  
  import urllib2
  import os
  from PIL import Image
  
  
  class Pin(models.Model):
      submitter = models.ForeignKey(User)
      url = models.TextField(blank=True, null=True)
      description = models.TextField(blank=True, null=True)
      image = models.ImageField(upload_to='pins/pin/originals/')
      thumbnail = models.ImageField(upload_to='pins/pin/thumbnails/')
      published = models.DateTimeField(auto_now_add=True)
  
  
      def __unicode__(self):
          return self.url
  
  
      def save(self, *args, **kwargs):
          hash_name = os.urandom(32).encode('hex')
  
          if not self.image:
              temp_img = NamedTemporaryFile()
              temp_img.write(urllib2.urlopen(self.url).read())
              temp_img.flush()
              image = Image.open(temp_img.name)
              image.save(temp_img.name, 'JPEG')
              self.image.save(''.join([hash_name, '.jpg']), File(temp_img))
  
          if not self.thumbnail:
              if not self.image:
                  image = Image.open(temp_img.name)
              else:
                  super(Pin, self).save()
                  image = Image.open(self.image.path)
              size = image.size
              prop = 200.0 / float(image.size[0])
              size = (int(prop*float(image.size[0])), int(prop*float(image.size[1])))
              image.thumbnail(size, Image.ANTIALIAS)
              temp_thumb = NamedTemporaryFile()
              image.save(temp_thumb.name, 'JPEG')
              self.thumbnail.save(''.join([hash_name, '.jpg']), File(temp_thumb))
  
          super(Pin, self).save(*args, **kwargs)
  
  
      class Meta:
          ordering = ['-id']
  
subject: Fix image resizing.