Django: pasar argumentos adicionales a la función upload_to callable

Sé que puede usar el parámetro upload_to para pasar una función invocable para alterar dinámicamente un FileFied / ImageField, etc. en un modelo de Django.

A la función llamada por upload_to se le pasan 2 variables, la instancia del archivo no guardado en la base de datos (instancia) y el nombre de archivo de dicha instancia (nombre de archivo).

Si estoy usando un ImageField en un modelo junto con otros campos (Char, etc.), es posible obtener los valores de esos campos en esa misma función de llamada.

por ejemplo.

class Badge(models.Model):

  def format_badge_name(instance, filename):
    _filetype = os.path.splitext(filename)[1]
    _category = 'foo'
    _name = os.path.splitext(filename)[0]
    _filename = "%s-%s-%s%s" % (_category, _name, 'private', _filetype)

    return "badges/%s" % _filename

  name = models.CharField(max_length=16, help_text="Name for Badge")
  file = models.ImageField(upload_to=format_badge_name)

¿Es posible pasar los valores del nombre (self.name?) A format_badge_name?

Respuestas a la pregunta(1)

Su respuesta a la pregunta