ok don't know what typo I made yesterday but it works now, maybe backslash in path. Thanks.
for you who want to know how: def get_path(instance, filename): return instance._folder My model: class File(models.Model): type = models.CharField(max_length=10) the_file = models.FileField(upload_to=get_path) def __unicode__(self): return self.file.name def save(self, force_insert=False, force_update=False): self._folder = "new_folder/"+self.the_file.name super(File, self).save(force_insert, force_update) On 4 Aug, 22:02, Daniel Roseman <dan...@roseman.org.uk> wrote: > On Aug 4, 8:53 pm, caliman <stefanhjel...@gmail.com> wrote: > > > > > Hi! > > > I'm trying to change upload_to dynamically. > > > My model: > > class File(models.Model): > > type = models.CharField(max_length=10) > > the_file = models.FileField(upload_to="folder") > > def __unicode__(self): > > return self.file.name > > > Tried following: > > > 1, overwrite upload_to in save: > > def save(self, force_insert=False, force_update=False): > > the_file.upload = "new_folder" > > super(File, self).save(force_insert, force_update) > > > This gives: > > Exception Type: NameError > > Exception Value: global name 'the_file' is not defined > > > Also tried with slug fields and setting a function and set value in > > runtime with: > > the_file = models.FileField(upload_to=get_path) > > > that works great if I just want to change the filename but I can't > > change folder. > > > So what am I doing wrong? > > > Stefan > > Alex has given you the answer regarding why you're getting that > exception, but even when you've fixed that it won't do what you want - > by then it's far too late, the file has already been uploaded. > > Your second approach is the right one, making upload_to a function - > as explained in the > documentation:http://docs.djangoproject.com/en/dev/ref/models/fields/#filefield > But I don't understand why you say you can't change the folder there. > On the contrary, you can return a complete file path from your > upload_to function and that will be used as the file location. What > happens when you try? > -- > 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 -~----------~----~----~----~------~----~------~--~---