Ok, I've tried about near everything and I cannot get this to work.
## Image generation code runs....
## Attempt to set the ImageField path...
ImageField.Path = /Upload/generated_image_.jpg
model.ImageField.path = generated_image_path
f = open(thumb_path, 'r')
model.thumbnail = File(f)
I have some code that fetches an image off the web and stores it in a model. The important bits are:
from django.core.files import File # you need this somewhere import urllib # The following actually resides in a method of my model result = urllib.urlretrieve(image_url) # image_url is a URL to an image # self.photo is the ImageField self.photo.save( os.path.basename(self.url), File(open(result)) ) self.save()
That's a bit confusing because it's pulled out of my model and a bit out of context, but the important parts are:
Let me know if you have questions or need clarification.
Edit: for the sake of clarity, here is the model (minus any required import statements):
class CachedImage(models.Model): url = models.CharField(max_length=255, unique=True) photo = models.ImageField(upload_to=photo_path, blank=True) def cache(self): """Store image locally if we have a URL""" if self.url and not self.photo: result = urllib.urlretrieve(self.url) self.photo.save( os.path.basename(self.url), File(open(result)) ) self.save()