일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 웹호스팅
- shortcut
- O'NION
- 이미지변환
- ffmpeg
- H264
- SNS 개발
- python
- nginx
- DART
- 사이트 운영
- pandas
- androidstudio
- 연준
- fed
- Pillow
- 안드로이드코덱
- 안드로이드스튜디오
- gifmp4변환
- 장고
- 다트
- Django
- accesslog
- 플러터
- Firebase
- 아이피
- coding
- DB호스팅
- Flutter
- 비트코인
- Today
- Total
누구나 할 수 있다.
django 변환 이미지 중복저장 문제 본문
원 게시글 : onion.haus/detail/4498
변환 이미지 중복저장 문제 | O'NION
앞선 질문글 : https://onion.haus/detail/4289변환 이미지 중복 저장 문제.앞선 답변 글에 이어지는 질문입니다.해당 내용은 어떻게 사진을 변환, 저장할 지에 대한 질문이었는데,강좌 소스코드를 기반
onion.haus
앞선 질문글 : https://onion.haus/detail/4289
django 이미지 변환 및 저장에 관련한 질문 | O'NION
django 기반 이미지 변환 및 저장에 관련한 질문질문이 들어왔는데 글로 남겨 많은분들이 볼 수 있도록 하는 게 좋겠다 싶어 작성합니다.일단 질문의 요지는 변환된 이미지를 어떻게 저장하고 보
onion.haus
django 변환 이미지 중복저장 문제
앞선 답변 글에 이어지는 질문입니다.
해당 내용은 어떻게 사진을 변환, 저장할 지에 대한 질문이었는데,
강좌 소스코드를 기반으로 해당 내용을 구현하면 변환된 사진이 중복으로 converted 폴더에 저장되는 문제에 대한 해결법입니다.
이는 form의 save 가 중복해서 불러지기 때문에 발생하는 문제입니다.
def form_valid(self, form):
temp_article = form.save(commit=False)
temp_article.writer = self.request.user
temp_article.save()
return super().form_valid(form)
저희가 강좌에서 구현한 ArticleCreateView 안에서의 form_valid 함수를 보게 되면 위와 같은데
writer에 값을 할당 후 save 메서드를 호출 합니다.
중요한 것은 이후 super().form_valid 를 실행하는 과정에서
form 의 save 메서드가 다시 불러지게 됩니다.
고로 save 가 두번 불러지게 되는 겁니다.
일반적인 상황에서는 문제 없이 동작하지만
앞선 글에서 model 안의 save 메서드를 오버라이딩 하여 구현하였기 때문에, 문제가 발생합니다.
convert_image 메서드도 두번씩 호출되는 것이죠.
def save(self, *args, **kwargs):
self.convert_image()
super(Article, self).save(*args, **kwargs)
그래서 이 문제를 해결하기 위해서 save 메서드 오버라이딩 한 내용을 지워주고,
form_valid 안에 temp_article.save() 코드 이후
temp_article.convert_image()
를 한번만 명시적으로 실행함으로서
변환 이미지 중복 저장 문제를 해결 할 수 있습니다.
def form_valid(self, form):
temp_article = form.save(commit=False)
temp_article.writer = self.request.user
temp_article.save()
temp_article.convert_image()
return super().form_valid(form)
물론 이런 방식 말고도 다른 방식으로도 구현할 수 있으니,
form_valid 함수의 실행이 어떤 흐름으로 진행되는지 살펴보시면
더 넓은 응용이 가능하실 것이라 생각합니다.
'Django' 카테고리의 다른 글
django 이미지 변환 및 저장에 관련한 질문 (0) | 2021.02.27 |
---|---|
SNS 제작 프로젝트 : O'NION 중간 경과 (0) | 2021.01.31 |
안드로이드 mp4 파일 재생 불가 / 회색영상 출력 문제 (0) | 2020.11.03 |
Django remote 데이터베이스를 향한 여정.. (0) | 2020.02.05 |