Превышена максимальная глубина рекурсии при удалении в админке django
У меня есть следующая модель Folder, которая представляет все папки, которые у меня есть внутри каталога :
class Folder(models.Model):
folder_name = models.CharField(max_length=200)
parent_folder = models.ForeignKey('self', on_delete=models.CASCADE, blank=True, null=True, related_name='childrens')
def __init__(self, *args, **kwargs):
super(Folder, self).__init__(*args, **kwargs)
if self.pk is not None:
self.initial_filepath = self.filepath()
def save(self, *args, **kwargs):
on_creation = self.pk is None
if on_creation:
os.mkdir(self.filepath())
else:
os.rename(self.initial_filepath, self.filepath())
super(Folder, self).save(*args, **kwargs)
def delete(self, *args, **kwargs):
shutil.rmtree(self.filepath(), ignore_errors=True)
super(Folder, self).delete(*args, **kwargs)
def filepath(self):
if not self.parent_folder:
return f'media/scripts/{self.folder_name}'
else:
return f'{self.parent_folder.filepath()}/{self.folder_name}'
<
<
<
class FolderAdmin(admin.ModelAdmin):
def delete_queryset(self, request, queryset):
for obj in queryset:
obj.delete()
queryset.delete()
<