Ok it seems i either asked the wrong question or did not explain well
enough.

My view has such line:
                        pform = ProfileForm(instance=profile)

it creates the form instance and i thought that it also loads data
from database and sends it to form, so i can use this in form save
method. I do not know if i understand this right or wrong. Perhaps it
just does not work for ImageField, because if i do
                        path = self.instance.img.name
                        os.remove(path)

in form save method i get following error:
OSError at /profile/edit/

(2, 'No such file or directory')

Request Method:         POST
Request URL:    http://127.0.0.1/profile/edit/
Exception Type:         OSError
Exception Value:

(2, 'No such file or directory')
Exception Location:     /home/projects/tst/profile/forms.py in save,
line 24
----------
bit more down on the samge page i can see that path is empty.

So what to do, if i wish to read old files name from databse and
delete it in the forms save method?

Do i need to pass the file name to form in a view too?

In addition to that problem. What do i need to do if i want that
ImageField has another link for removing existing image right next to
browse button in a view. What do i need to write for that?

Alan.

On Aug 7, 9:04 am, zayatzz <alan.kesselm...@gmail.com> wrote:
> Thank you!
>
> Alan.
>
> On Aug 6, 10:51 pm, Daniel Roseman <dan...@roseman.org.uk> wrote:
>
> > On Aug 6, 8:36 pm, zayatzz <alan.kesselm...@gmail.com> wrote:
>
> > > Hello
>
> > > I am not entirely sure if i am asking the right question, but here is
> > > what am trying to do.
>
> > > I am saving user mugshot with form and it works just fine. I rename
> > > the uploaded file to mugshot.[insert imagefile extension here], but i
> > > want to do more in form save method than just that.
>
> > > 1) i want to check if the model, whos form im saving already has
> > > imagefile saved. I have this in view:
> > > pform = ProfileForm(instance=profile)
>
> > > but this in form save:
> > >                         os.remove(settings.MEDIA_ROOT+self.instance.img)
>
> > > returns me ImageFieldFile not the data that is saved in it... and i
> > > get typeerror:
> > > TypeError at /profile/edit/
>
> > > cannot concatenate 'str' and 'ImageFieldFile' objects
>
> > > 2) if it exists, then remove it - can do it os.remove(), but the
> > > problem is similar to last point - i need to know the name of existing
> > > file, that is saved in model data
> > > 3) if the file has been removed or did not exist in the first place
> > > then i want to save different sizes of the file - thumbnail, bigger
> > > pic and so on. i do not need the examples for that.
>
> > > Alan
>
> > self.instance.img.name will give you the relative path from
> > MEDIA_ROOT. 
> > See:http://docs.djangoproject.com/en/dev/ref/files/file/#django.core.file...
> > --
> > DR.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to