我具有此功能,当在Django Admin中删除行时,该功能将删除给定目录。在Django Admin上完成后,该行已成功删除,但该目录仍然存在。
models.py
from django.db import models
from django.conf import settings
import git, os, shutil
class DIR (models.Model):
username = models.CharField(max_length=39)
repository = models.CharField(max_length=100)
def get_dir_name(self):
return os.path.join(settings.PLAYBOOK_DIR, self.repository)
def rm_repository(self):
DIR_NAME = self.get_dir_name()
shutil.rmtree(os.path.join(DIR_NAME))
def delete(self):
self.rm_repository(self):
super(DIR, self).delete(*args, **kwargs)
但是当我使用shell尝试时,目录和内容被删除
$ docker exec -it <container> python manage.py shell
>>> import os, git, shutil
>>> DIR_NAME = '/opt/app/john'
>>> shutil.rmtree(DIR_NAME)
shell和有什么不一样。没有给出任何错误,只是不确定为什么在Django Admin的
delete
中这样做不起作用。在python shell上测试时,是否可以正常工作?
最佳答案
显然,函数delete()不适用于批量删除。
我在Django Admin中正在做什么。
关于python - 使用python删除docker容器中的文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44094238/