class Media ( models. Model ) : [ ... ] @ contextmanager def in_dir ( self , delete_on_error = False ) : # si vous ne comprenez pas ce code, ne vous en faites pas, # c'est du Python avancé try : os . makedirs ( self . dir ) except ( OSError , IOError ) as e: pass try : yield self . dir except : if delete_on_error: shutil . rmtree ( self . dir ) raise