바뀜

864 바이트 추가됨 ,  2023년 10월 18일 (수) 17:20
22번째 줄: 22번째 줄:  
</syntaxhighlight>파일을 정규표현식을 이용해 저장경로를 설정할 수 있다. 년월일로 저장하는 등 방식으로 저장하면 사람이 찾긴 힘들어지지만, 컴퓨터의 검색 속도는 더욱 빨라진다.
 
</syntaxhighlight>파일을 정규표현식을 이용해 저장경로를 설정할 수 있다. 년월일로 저장하는 등 방식으로 저장하면 사람이 찾긴 힘들어지지만, 컴퓨터의 검색 속도는 더욱 빨라진다.
    +
객체가 지워질 때 올렸던 파일도 지워지게 하려면 file필드 안에 delete=True 옵션을 주면 된다.
 +
 +
=== save 오버라이드 ===
 +
객체를 수정하여 새로 업로드 할 때 기존 파일을 지우지 않고 새 파일만 올리는 경우가 있다. 이런 경우 기존 파일은 그대로 남아 곤란한 찌꺼기가 된다.<syntaxhighlight lang="python">
 +
    def save(self, *args, **kwargs):
 +
        '''업로드 파일이 기존 파일과 다를 경우에 기존파일을 삭제하기 위한 save 오버라이드.'''
 +
        try:
 +
            this = HomeworkAnswer.objects.get(id=self.id)
 +
            if this.file != self.file:
 +
                this.file.delete(save=False)
 +
        except:
 +
            pass  # when new photo then we do nothing, normal case
 +
        super(HomeworkAnswer, self).save(*args, **kwargs)
 +
</syntaxhighlight>
 
== 폼 ==
 
== 폼 ==
 
<syntaxhighlight lang="python">
 
<syntaxhighlight lang="python">