코딩한걸음
728x90
반응형

1. Today I Learned


1.1. 어떤 문제가 있었는지

프로젝트 작업으로 user mypage를 맡았다.

POST요청으로 정보를 보낼 때 공백으로 제출하면 기존의 값이 전달되도록 하고싶었다.

근데 공백으로 제출하면 자꾸 기존값 대신 공백으로 덮어씌워짐

 


1.2. 내가 시도해 본 것들

<bash />
@login_required def user_mypage_update(request): user = request.user if request.method == 'POST': form = UserUpdateForm(request.POST, instance=request.user) profileform = ProfileForm(request.POST, request.FILES, instance=request.user.profile) # 예외처리 if form.fleds['email'] == '': form.fleds['email'] = user.email if form.is_valid() and profileform.is_valid(): form.save() profileform.save() messages.success(request, '프로필이 업데이트 되었습니다!') return redirect('/user/mypage') else: user_form = UserUpdateForm(instance=request.user) profile_form = ProfileForm(instance=request.user.profile) return render(request, 'user/mypage_update.html', {'form': user_form, 'profileform': profile_form})

이런식으로 예외처리를 해봤는데 안됨 

 


1.3. 어떻게 해결 했는지

결국 엄청 고민하다가 걍 input태그에 기본값으로 줬다..

공백으로 남기면 기존값이 들어간다는것도 사용자 입장에서는 잘 모를거같다

하지만 기본값으로 기존값이 들어가 있다면 안 바꿀 사람들은 걍 놔둘거같다

 

<bash />
## user/update.html # input 태그 안에 value="{{user.last_name}}" required 추가 <div class="mb-3"> <label for="{{ form.email.id_for_label }}" class="form-label">이메일 주소</label> <input type="email" class="form-control" id="{{ form.email.id_for_label }}" name="{{ form.email.html_name }}" value="{{user.email}}" required> </div>

이렇게 하면 input태그 안에 기본값으로 user.email이 들어간다.

추가로 required로 공백입력을 막으면 form정보에 공백이 사라지게 되는 것

 


1.4. 무엇을 새롭게 배웠는지

input 태그의 value, required와 form정보를 다루는 방법을 알게 되었다

 

하고싶은게 직접적으로 안된다면 우회하는 방법도 생각을 해봐야겠다.

 

728x90
반응형
profile

코딩한걸음

@Joonyeol_Yoon

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!