onlineshop 제작기 #2
이번 포스팅에 수정하기로 했던 에러는 오타였다!!!
장고 MVT 패턴에서 뷰 혹은 템플릿 부분에 오류가 있을 것 같아 관련된 부분을 열심히 보고 찾았다.
장바구니 세션인 cart.py, cart/detail.html, cart/view.py.
이 세 파일을 집중적으로 확인했고 결국 찾았다.
들여쓰기 문제였다. ㅠㅠ
수정 전
def detail(request):
cart = Cart(request)
# 제품 수량 수정을 위해서 폼을 제품마다 하나씩 추가, 수량은 수정하는 대로 반영해야 하기 때문에 is_update를 True로 설정
for product in cart:
product['quantity_form'] = AddProductForm(initial={'quantity': product['quantity'], 'is_update': True})
return render(request, 'cart/detail.html', {'cart': cart})
수정 후
def detail(request):
cart = Cart(request)
# 제품 수량 수정을 위해서 폼을 제품마다 하나씩 추가, 수량은 수정하는 대로 반영해야 하기 때문에 is_update를 True로 설정
for product in cart:
product['quantity_form'] = AddProductForm(initial={'quantity': product['quantity'], 'is_update': True})
return render(request, 'cart/detail.html', {'cart': cart})
수정 전 코드 상에서는 product에 폼을 설정해줄 때 cart에 몇 개의 프로덕트가 있던 상관없이 제일 처음의 product에만 폼을 추가해 return해 페이지를 render하기 때문에 에러가 났던 것이다.
수정하고 나면 모든 product에 폼을 추가하고 페이지를 render하기 때문에 원하는대로 수정되어 페이지가 출력되는 것을 확인할 수 있다.
원래 주력언어로 java를 사용하고 있는데 웹 개발에 빠른 입문을 위해 django를 사용하다 다른 환경에 익숙치 않아 발생한 문제였다.
Author And Source
이 문제에 관하여(onlineshop 제작기 #2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@estry/onlineshop-제작기-2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)