Django文件管理器图像与另一个模型有关,即是否正在使用?

时间:2017-01-13 13:25:02

标签: python django django-filer

我正在为Django Filer创建一个清理脚本,这样如果一个图像没有被使用,例如它与任何其他型号无关,那么我想删除该图像。

我无法弄清楚如何检测图像是否与任何其他物体相关。有人知道如何实现这个目标吗?

当您按下删除按钮并在删除确认页面上时,您可以查看此信息,但我不确定Django是如何做到这一点的。

非常感谢任何帮助。

修改

澄清,

from filer.models import Image

i = Image.objects.all().first()

i.get_all_related_objects.count()

上面的最后一行是无效的,但这是我想要实现的,所以如果这是0,那么我可以删除该文件。

1 个答案:

答案 0 :(得分:0)

您可以使用

获取所有相关对象,无论它们来自哪种相关模型
instance._meta.get_all_related_objects()

所以假设你有一个Image模型:

for image in Image.objects.all():
    if not image._meta.get_all_related_objects():  # if this list is empty, there are no relations pointing here
        image.delete()