2017-05-21 17 views
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シェルでテストすると動作しますか?

+1

'import os os.remove(filename)' – rkatkam

+0

@rkatkamは1つのファイルだけを削除しようとしていません。ディレクトリ全体を削除しようとしていた – lozadaOmr

答えて

0

明らかにfunction delete()は一括削除ではありません。 私はDjango Adminで何をやっていましたか。

関連する問題