我有一个 django 项目,其中管理员可以上传媒体。当物品售出时,它们会从网站中删除,从而删除其在 MySQL 数据库中的条目。但是,与物品相关的图像仍保留在文件系统中。这并不一定是坏行为 - 我不介意保留文件以防意外删除。我预见的问题是两年后,由于媒体文件夹充斥着旧产品图像,存储空间有限。
有谁知道一种系统/编程方式来对所有图像进行排序并将它们与相关的 MySQL 字段进行比较,从文件系统中删除任何没有匹配项的图像?在理想的世界中,我设想在 django-admin 中有一个按钮,如“清理未使用的媒体”,它会执行一个能够执行此行为的 python 脚本。我将在这里分享我最终的解决方案,但我现在正在寻找的是任何有想法、知道资源或自己曾经做过这件事的人。
答案1
您可以使用 Django Cleanup,安装它并将其pip install django_cleanup
添加django_cleanup
到您的installed_apps中settings.py
,这样就可以解决问题,但是它不会删除旧图像,因此您必须手动删除它们。Django 清理。确保 Python 和 Django 版本与您使用的 Django 清理版本兼容。