Programming/Django

[Django] 체크박스 리스트(check boxes) 데이터 POST로 처리하기

J, J 2020. 1. 21. 05:07

템플릿에서 체크박스 데이터를 받아야 하는 경우가 왕왕 있다.  장고에서는 이 경우 getlist를 통해 리스트 데이터를 받을 수 있다.

<!-- template.html -->

<form action="" method="post">
  {% for obj in objects %}
  	<input id="selected" type="checkbox" name="selected" value="{{ obj.id }}">
  {% endfor %}
  <button type="submit">저장</button>
</form>

 

# views.py

def my_view(request):
    if request.method == 'POST':
        selected = request.POST.getlist('selected')
        print(selected)

    return redirect(...)
    
# 만약 obj.id 가 4, 7, 13 인 체크박스를 선택해서 요청했다면 프린트 결과는
# ['4','7','13'] 이 된다.