title: When saving, how can you check if a field has changed?
body: <p>In my model I have :</p>
  <pre><code>class Alias(MyBaseModel):
  remote_image = models.URLField(
      max_length=500, null=True,
      help_text='''
          A URL that is downloaded and cached for the image.
          Only used when the alias is made
      '''
  )
      image = models.ImageField(
          upload_to='alias', default='alias-default.png',
          help_text=&quot;An image representing the alias&quot;
      )
  
      
      def save(self, *args, **kw):
          if (not self.image or self.image.name == 'alias-default.png') and self.remote_image :
              try :
                  data = utils.fetch(self.remote_image)
                  image = StringIO.StringIO(data)
                  image = Image.open(image)
                  buf = StringIO.StringIO()
                  image.save(buf, format='PNG')
                  self.image.save(
                      hashlib.md5(self.string_id).hexdigest() + &quot;.png&quot;, ContentFile(buf.getvalue())
                  )
              except IOError :
                  pass
  </code></pre>
  <p>Which works great for the first time the <code>remote_image</code> changes.</p>
  <p>How can I fetch a new image when someone has modified the <code>remote_image</code> on the alias? And secondly, is there a better way to cache a remote image?</p>