챕터 2-10 (p 113) 에서 views.py 의 코드 중 form 변수 문의
안녕하세요 저자님
점프투장고 도서는 쉽게 써주셔서 잘 보고 있습니다.
이해가 좀 안되는 라인이 있어 설명해주시면 감사하겠습니다.
context={'form' : form} 라인에서 form 값이 저장되는 원리를 설명해주실수 있으실지요.
위쪽 라인의 form 변수들은 모두 지역변수인데 context 부분에 어떻게 값이 전달되는지 이해가 잘 안됩니다.
def question_create(request):
"""
pybo 질문 등록
"""
if request.method == 'POST':
form = QuestionForm(request.POST) ## 여기 form 은 if 문 안에서만 존재하는 지역변수
if form.is_valid():
question = form.save(commit=False)
question.create_date = timezone.now()
question.save()
return redirect('pybo:index')
else:
form = QuestionForm() ## 여기 form 은 else 안에만 존재하는 지역변수
context = {'form': form} ## if 문 밖에 정의된 form에 값이 들어가는 원리가 이해가 되지 않음
return render(request, 'pybo/question_form.html', context)
장고매니아 님 590
M 2021년 3월 2일 2:02 오후
1개의 답변이 있습니다. 1 / 1 Page
안녕하세요.
파이썬은 if 블럭내에 지정한 변수는 if문 바깥에서도 참조가 가능합니다. (C나 Java와는 좀 다르죠)
따라서 다음과 같은 코드도 실행이 됩니다.
if 3>2:
a = "yes"
else:
b = "no"
print(a)
사실 이 부분은 깊게 파면 꽤 어려운 주제입니다. 좀 더 자세한 내용은 아래 문서를 참조하시면 좋을 것 같습니다.
박응용 님
M 2021년 3월 2일 12:16 오후