# to use this you need to install ThreadLocals Middleware from 
# http://code.djangoproject.com/wiki/CookBookThreadlocalsAndUser
#
# then change import path below in <...>
from django.db import models
from <ThreadLocals middleware path here> import get_current_user

class UserImageField(models.ImageField):
    def get_internal_type(self):
        return 'ImageField'

    def get_directory_name(self):
        user = get_current_user()
        upl_to = self.upload_to.replace('%(user)s', '%%(user)s')
        upl_to = datetime.datetime.now().strftime(upl_to)
        upl_to = upl_to % {'user':user}
        return os.path.normpath(force_unicode(upl_to))