У меня есть несколько объектов модели File
.
Я пытаюсь отфильтровать и удалить эти файлы на основе определенного условия, но мне это не удается.
Рассмотрим следующее
У меня есть 3 File
объектов:
Я попытался переопределить функцию delete()
модели следующим образом:
def delete(self, using=None, keep_parents=False):
test_qs = File.objects.filter(file_name='File1')
if test_qs:
for x in test_qs:
x.delete()
super(File, self).delete()
Когда я иду в Django Admin, выбираю все файлы (File1, File2 и File3) и массово удаляю их, все они удаляются, а не только File1.
В моей консоли Django File.objects.filter(file_name='File1')
возвращает набор запросов только с File1.
Я также попытался переопределить сигнал pre_delete
следующим образом:
@receiver(pre_delete, sender=File)
def delete_certain_files(sender, instance, **kwargs):
test_qs = File.objects.filter(file_name='File1')
test_qs.delete()
Это, однако, приводит к RecursionError
Как мне убедиться, что при массовом удалении просто удаляются File
объекты, которые удовлетворяют определенному условию?