def get_files_by_img_id(img_id, check_hash=True):
main_rel_path = get_relative_path_from_img_id(img_id)<EOL>main_path = media_path(main_rel_path)<EOL>if not os.path.isfile(main_path):<EOL><INDENT>return None<EOL><DEDENT>filename = os.path.basename(main_rel_path)<EOL>name_left_part = filename.split(dju_settings.DJU_IMG_UPLOAD_MAIN_SUFFIX, <NUM_LIT:1>)[<NUM_LIT:0>]<EOL>img_name = name_left_part<EOL>if img_name.startswith(dju_settings.DJU_IMG_UPLOAD_TMP_PREFIX):<EOL><INDENT>img_name = img_name[len(dju_settings.DJU_IMG_UPLOAD_TMP_PREFIX):]<EOL><DEDENT>img_name_parts = img_name.split('<STR_LIT:_>', <NUM_LIT:2>)<EOL>img_name = '<STR_LIT:_>'.join(img_name_parts[:<NUM_LIT:2>])<EOL>search_pattern = name_left_part + dju_settings.DJU_IMG_UPLOAD_VARIANT_SUFFIX + '<STR_LIT:*>'<EOL>search_dir = os.path.dirname(main_path)<EOL>variants = {}<EOL>for var_path in glob.iglob(os.path.join(search_dir, search_pattern.replace('<STR_LIT:\\>', '<STR_LIT:/>'))):<EOL><INDENT>var_filename = os.path.basename(var_path)<EOL>m = variant_hash_label_re.match(var_filename)<EOL>if not m:<EOL><INDENT>continue<EOL><DEDENT>var_hash, var_label = m.groups()<EOL>if check_hash and var_hash != get_hash(img_name, var_label):<EOL><INDENT>continue<EOL><DEDENT>variants[var_label] = os.path.relpath(var_path, settings.MEDIA_ROOT)<EOL><DEDENT>return {<EOL>'<STR_LIT>': main_rel_path,<EOL>'<STR_LIT>': variants,<EOL>}<EOL>
Шукає файли для img_id.
Повертає:
{
    'main': 'relative path to main image',
    'variants': {
        'label': 'relative path to variant image by label',
        ...
    }
}
Якщо check_hash=True, тоді файли з невірним хешем будуть ігноруватись.
Якщо файл не існує, тоді поверає None.
Пошук варіантів відбуваться в файловій системі не залежно від налаштувань.