solved this by moving it to the model clean() method, and using imagefield.file.open() and imagefield.file.read() to get the data for computing the other fields.
On Wed, May 11, 2011 at 1:28 PM, Brian Craft <bc...@thecraftstudio.com> wrote: > I have a model with an imagefield, and some fields that are computed > from the image. I'm trying to override the "save" method to fill in > the other fields. > > When I test this in the admin, there are two problems: first, the path > (mymodel.image.path) doesn't honor the upload_to setting on the field. > It concats MEDIA_ROOT and the file name, w/o the upload_to. (This is > django 1.2.3). Second, I don't see the file in the filesystem when > .save() is called. Perhaps save() is the wrong place to do this? > > If I don't try to generated the computed fields, the file is created > in the correct (upload_to) directory, and if I read the object from > the db, mymodel.image.path is also correct. > > Looks like upload_to is only accessed during FieldFile.save(), where > the self.name is updated, so the path is always wrong before that. > > And apparently the file isn't committed to storage until the field is > saved. Is there some other way to access the file before it is saved? > -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.