title: Django - getting a path from a variable when saving models
body: <p>My app has a simple process, the user uploads a gif file and then the gif is conveted to frames that are saved as objects. For the <code>upload_to</code> part of my gif, I run a function <code>content_file_name()</code> that uses <strong>uuid</strong> to create a folder path. I want the image frames to be saved to the same folder as the gif. Problem is, I can't set the path as a variable as much as I try. The variable needs to be defined first, but if I define it, it doesn't change no matter what I do. Here's what I got now:</p>
  
  <pre><code>currentFilePath = '' # Defining the variable 
  
  def content_file_name(instance, filename):
      ext = ''.join(filename.split())[:-4]
      foldername = "%s/%s" % (uuid.uuid4(), ext)
      store_random_path('/'.join(['documents', str(foldername)])) # Running a function to change the variable
      return '/'.join(['documents', str(foldername), filename])
  
  def store_random_path(path):
      currentFilePath = str(path) # The variable should be changed here
  
  class Document(models.Model):
  docfile = models.ImageField(upload_to=content_file_name)
  def create_documentfiles(self):
      gif = Image.open(self.docfile.path)
      frames = [frame.copy() for frame in ImageSequence.Iterator(gif)]
      basename, _ext = os.path.splitext(self.docfile.name)
      for index, frame in enumerate(frames):
          buffer = BytesIO()
          frame.convert('RGB').save(fp=buffer, format='JPEG')
          destname = "{}{}.png".format(basename, index)
          finalImage = InMemoryUploadedFile(buffer, None, destname, 'image/jpeg', frame.tell, None)
          imageToSave = DocumentImage(imagefile=finalImage)
          imageToSave.save()
  
  class DocumentImage(models.Model):
      imagefile = models.ImageField(upload_to=currentFilePath) # Trying to save using the variable as path
      image = models.ForeignKey(Document, related_name='Image', null=True, on_delete=models.CASCADE)
  </code></pre>
  
  <p>So, when the DocumentImage gets saved, it should have seen the variable as path, but it doesn't. Instead it just saves to the initially declared '' which is the root of my media file. Not sure if what I'm trying is possible in Python/Django. I've just started learing Python a month ago. Thank you for your time.</p>