On Wed, May 13, 2009 at 8:05 AM, jai_python <jayapa...@gmail.com> wrote:

>
> I want to create Dynamic Upload Path for my models as follows.
>
> Models.py.
> ---------------------------------------------------------------
> class Books(models.Model):
>        no=models.IntegerField()
>
> class Collection(models.Model):
>        Page=models.ForeignKey('Books')
>        image=models.ImageField(upload_to='Book_Media')
>        def save(self):
>                for field in self._meta.fields:
>                    if field.name == 'image':
>                        field.upload_to = 'Book_Media/'+str(self.Page.no)
>                super(Collection, self).save()
> ---------------------------------------------------------------------
>
> Issue:
> ---------
> When ever i upload an image in 'Collection Models', the image is
> stored in previous object path.
> how can we overcome this ? Or else is there any other solution for
> DYNAMIC PATH based on object?
>

The correct way to make upload_to dynamic is to make it a callable:

http://docs.djangoproject.com/en/dev/ref/models/fields/#filefield

That way your code will be called to provide the path at the right time.
What you are doing now apparently results in your changing the field's
upload_to value after the object you are currently saving has already been
uploaded to the previous upload_to value.

Karen

--~--~---------~--~----~------------~-------~--~----~
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