Untitled

#todo 프로필 전체에 대한 UPDATE 뷰로 사용? 그럼 base 프로필은 어케 처리?
def profile_modify(request):
"""
    계정설정 이미지 등록 및 변경
    """
profile = request.user.profile
    if request.method == "POST":
        if profile.image:
            raise ValueError('1')
        form = ProfileForm(request.POST, request.FILES, instance=profile)
        if form.is_valid():
            # 기존 이미지 파일 삭제
            if profile.image:
                raise ValueError(profile.image.path)
            # if profile.image and 'image' in request.FILES:
            #     os.remove(os.path.join(settings.MEDIA_ROOT, profile.image.path))
            form.save()
            return redirect(request.path_info)
    else:
        form = ProfileForm(instance=profile)
    context = {'form': form, 'profile': profile, 'settings_type': 'image'}
    return render(request, 'common/settings/image.html', context)

예상) 모델 인스턴스에 저장하기 전, 사용자에게 받은 사진 파일은 settings.MEDIA_ROOT에 임시적으로 저장하는 듯?

서버 구동 시 media 파일에 대한 경로를 nginx(웹서버) 세팅에 추가해줘야 한다.

/etc/nginx/sites-available$ sudo vim mysite

server {
        listen 80;
        server_name 3.38.13.240;

        location = /favicon.ico { access_log off; log_not_found off; }

        location /static {
                alias /home/ubuntu/projects/mysite/static;
        }

        location /media {
                alias /home/ubuntu/projects/mysite/media;
        }

        location / {
                include proxy_params;
                proxy_pass <http://unix>:/tmp/gunicorn.sock;
        }
}

sudo systemctl restart nginx