def upload_to(instance, filename): format = 'photo/%Y/%m/%d/%H%M%S' prefix = os.path.normpath(force_unicode(datetime.datetime.now().strftime(smart_str(format)))) postfix = '%s%s' % ( string.join(random.sample(string.ascii_letters + string.digits, 5), ''), os.path.splitext(filename)[-1], ) filepath = '%s_%s' % (prefix, postfix) return filepath class Test(models.Model): photo = models.ImageField(upload_to=upload_to)