Превышена максимальная глубина рекурсии при удалении в админке 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()
<
Вернуться на верх