게으른 과거의 나를 미워하며 과거의 한 일을 다시 복기해서 쓰는 내용(4)
1. Cartapp의 Model을 작성함
2. Cartapp의 CRUD를 구현함
장바구니에 이미 들어가있는 상품이라면 해당 상품의 수량을 +1
상품 삭제시 체크박스를 통해 선택된 상품 삭제시 request.POST.getlist()로 리스트를 받음
상품 수량을 변경하는 기능도 추가함
cartapp/view.py
cart_item_list = request.POST.getlist('cart_item_list[]', None)
cartapp/list.html
// 선택된 장바구니 상품 삭제
function deleteCartItem(){
checked_item = isChecked();
if (checked_item) {
var result = confirm('해당 상품을 장바구니에서 제외할까요?');
var cart_pk = $('#target_cart').val()
var cart_item_list = []
if (result) {
for (var i=0; i<checked_item.length; i++) {
cart_item_list.push(checked_item[i].value);
}
$.post('{% url 'cartapp:delete' cart_pk=target_cart.pk %}',
{
'csrfmiddlewaretoken' : csrftoken,
'cart_item_list' : cart_item_list
}, function() {
alert('삭제완료!');
location.reload();
});
}
} else {
alert('상품을 선택해주세요!');
}
}
스택오버플로우에서 어떤 글은
jQuery POST's arrays with the [] suffix because PHP and some web frameworks
understand that convention, and re-build the array on the server-side for you automatically.
Django doesn't work that way
라고 한다.
<input type="text" name="input[]">
<input type="text" name="input[]">
<input type="text" name="input[]">
이렇게 아에 마크업을 하는 방법도 있다더라
오늘 내용에서는 잘 모르겠다.