2
Django Adminで行が削除されているときに、指定されたディレクトリを削除するこの機能があります。 Django Adminで行が正常に削除されましたが、ディレクトリはまだ存在します。Pythonを使ってdocker conatinerでフォルダを削除する
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)
しかし、私はシェルを使用して、それをしようとすると、ディレクトリと内容が
$ docker exec -it <container> python manage.py shell
>>> import os, git, shutil
>>> DIR_NAME = '/opt/app/john'
>>> shutil.rmtree(DIR_NAME)
シェルの違いは何ですか削除されます。エラーはありませんでしたが、Django Adminのdelete
でそれを行うのはなぜうまくいかないのか分かりません。 Pythonシェルでテストすると動作しますか?
'import os os.remove(filename)' – rkatkam
@rkatkamは1つのファイルだけを削除しようとしていません。ディレクトリ全体を削除しようとしていた – lozadaOmr