# MemoImage 다중 이미지 삭제 처리
delete_image_ids = request.form.getlist('delete_memo_image_ids')
if delete_image_ids:
for img_id in delete_image_ids:
image_to_delete = MemoImage.query.get(img_id)
if image_to_delete and image_to_delete.memo_id == memo.id:
# 삭제되는 이미지가 대표 이미지(image_filename)인 경우 즉시 동기화
if memo.image_filename == image_to_delete.filename:
memo.image_filename = None
# 파일 및 DB 레코드 삭제
file_path = os.path.join(app.config['UPLOAD_FOLDER'], image_to_delete.filename)
try:
if os.path.exists(file_path):
os.remove(file_path)
db.session.delete(image_to_delete)
except OSError as e:
flash(f"이미지 삭제 중 오류 발생: {e}", "error")
# 모든 삭제 후 대표 이미지가 비어있고 남은 이미지가 있다면 새로운 대표 선정
remaining_images = [img for img in memo.images if img not in db.session.deleted]
if not memo.image_filename and remaining_images:
memo.image_filename = remaining_images[0].filename