首页 > 解决方案 > Django 删除重复的图像

问题描述

我正在尝试从给定目录返回随机但不同的图像。

我编写了一个函数,它将从目录返回随机图像,但我需要它返回不同的图像,目前它返回图像但其中一些是重复的。

做这个的最好方式是什么?任何帮助,将不胜感激。


随机图像.py

def random_image(image_dir):
    valid_extensions = ['.jpg', '.jpeg', '.png', '.gif']
    rand_dir = '/static/app_pickfeel/images/'
    # print(rand_dir)
    files = [f for f in os.listdir(settings.BASE_DIR + '/app_pickfeel/static/app_pickfeel/images')
             if f[f.rfind("."):len(f)] in valid_extensions]
    print(random.choice(files))

    return rand_dir + random.choice(files)

我正在使用template.html中的函数多次调用它

<img class="img-thumbnail" src="{{ MEDIA_URL}}{% random_image 'app_pickfeel/images/' %}">

标签: pythondjango

解决方案


您可以尝试set()从列表中删除重复项

def random_image(image_dir):
    valid_extensions = ['.jpg', '.jpeg', '.png', '.gif']
    rand_dir = '/static/app_pickfeel/images/'
    # print(rand_dir)
    files = [f for f in os.listdir(settings.BASE_DIR + '/app_pickfeel/static/app_pickfeel/images')
             if f[f.rfind("."):len(f)] in valid_extensions]
    remove_duplicate = set(files)
    final_list = list(remove_duplicate)
    print(random.choice(final_list))

    return rand_dir + random.choice(final_list)

希望这可以帮助你...


推荐阅读