Génére le chemin prévu pour un fichier et créé le chemin si besoin
    
    :type filename: string
    :param filename: Nom du fichier cible
    
    :type path: string
    :param path: Chemin relatif (au répertoire des médias, ``settings.MEDIA_ROOT``) du 
                 répertoire contenant le fichier, peut contenir les paramètres de 
                 substitution possibles avec la méthode 
                 ``django.utils.datetime_safe.strftime``.
    
    :type create_it: bool
    :param create_it: (optional) Déclenche la création du répertoire si il n'existe pas déja
    
    :type root_base: string
    :param root_base: (optional) Chemin de base ou créer le fichier, par défaut dans 
                      le ``MEDIA_ROOT`` du projet.
    
    :type permissions: int
    :param permissions: (optional) Permission chmod sur le chemin à créer, par 
                             défaut utilise le ``FILE_UPLOAD_PERMISSIONS`` des settings 
                             du projet. Et si cette variable n'est pas renseigné dans vos 
                             settings, alors un mask 0744 sera utilisé.
    
    :rtype: tuple
    :return: * Chemin relatif du fichier
             * Chemin absolu du fichier

def generate_valid_path(filename, path, create_it=True, root_base=settings.MEDIA_ROOT, permissions=settings.FILE_UPLOAD_PERMISSIONS):
    """
    Génére le chemin prévu pour un fichier et créé le chemin si besoin
    
    :type filename: string
    :param filename: Nom du fichier cible
    
    :type path: string
    :param path: Chemin relatif (au répertoire des médias, ``settings.MEDIA_ROOT``) du 
                 répertoire contenant le fichier, peut contenir les paramètres de 
                 substitution possibles avec la méthode 
                 ``django.utils.datetime_safe.strftime``.
    
    :type create_it: bool
    :param create_it: (optional) Déclenche la création du répertoire si il n'existe pas déja
    
    :type root_base: string
    :param root_base: (optional) Chemin de base ou créer le fichier, par défaut dans 
                      le ``MEDIA_ROOT`` du projet.
    
    :type permissions: int
    :param permissions: (optional) Permission chmod sur le chemin à créer, par 
                             défaut utilise le ``FILE_UPLOAD_PERMISSIONS`` des settings 
                             du projet. Et si cette variable n'est pas renseigné dans vos 
                             settings, alors un mask 0744 sera utilisé.
    
    :rtype: tuple
    :return: * Chemin relatif du fichier
             * Chemin absolu du fichier
    """
    if not permissions:
        permissions = 0744
    # Forme le chemin absolu vers le nouvo fichier créé
    relative_path = strftime(real_datetime.now(), path)
    absolute_path = join(root_base, relative_path)
    # Création du répertoire
    if create_it:
        if not exists( absolute_path ):
            makedirs(absolute_path, permissions)
        elif not isdir( absolute_path ):
            # Le chemin existe et n'est pas un répertoire
            raise IOError("'%s' exists and is not a directory." % absolute_path)
    
    return join(relative_path, filename), join(absolute_path, filename)