2017-05-21 2 views
2

장고 관리자에서 행을 삭제할 때 주어진 디렉토리를 삭제하는이 기능이 있습니다. Django Admin에서 행이 성공적으로 삭제되었지만 여전히 디렉토리가 존재합니다.파이썬을 사용하여 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) 

로 삭제. 오류가 주어지지 않았다. 왜 장고 관리자의 delete에서 그 일을하지 않는지 확신 할 수 없다. 파이썬 셸에서 테스트 할 때 작동합니까?

+1

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

+0

@rkatkam 하나의 파일 만 삭제하려고하지 않습니다. 전체 디렉토리를 삭제하려고했습니다. – lozadaOmr

답변

0

분명히 function delete()는 대량 삭제가 아닙니다. Django Admin에서 내가 뭘하고 있었는지.

관련 문제