3-09 게시물 수정 & 삭제 기능 추가하기, 질문 수정 함수 추가하기 question.author = request.user 질문
질문 수정 기능 추가하기의 [3] 질문 수정 함수 추가하기 부분에서 질문 있습니다.
question.author = request.user 에서 궁금한 게 있습니다.
question = get_object_or_404(Question, pk=question_id)로 수정할 Question모델 객체를 가지고 왔는데
이미 question.author에는 모델 객체를 생성한 유저(수정하는 유저)가 저장되어 있는 상태아닌가요?
수정한 후에 다시한번 아래의 코드를 사용해서 현재 유저가 Question모델 객체의 author로 할당되는데
이 수정할때 다시 한번 저장하는 이유가 궁금합니다.
이미 1. 탬플릿에서 if request.user == question.author 로 확인 2. view에서@login_required(login_url="common:login")로 재차 확인했는데
다시 한번 author부분을 할당하고 저장하는 이유는 뭔가요?
<질문코드>
question.author = request.user
<해당 예제코드>
def question_modify(request, question_id):
"""
pybo 질문수정
"""
question = get_object_or_404(Question, pk=question_id)
if request.user != question.author:
messages.error(request, '수정권한이 없습니다')
return redirect('pybo:detail', question_id=question.id)
if request.method == "POST":
form = QuestionForm(request.POST, instance=question)
if form.is_valid():
question = form.save(commit=False)
question.author = request.user #다시 저장하는 이유?
question.modify_date = timezone.now() # 수정일시 저장
question.save()
return redirect('pybo:detail', question_id=question.id)
else:
form = QuestionForm(instance=question)
context = {'form': form}
return render(request, 'pybo/question_form.html', context)
HJ 님 415
2021년 7월 18일 11:43 오후