목록django framework (2)
마이의 개발 블로그
제출된 폼의 확인 페이지를 구현하는 경우 폼의 input들을 일괄적으로 readonly 또는 disabled로 변경해야할 때가 있다. 보통은 렌더링 이후에 자바스크립트로 input값들의 disabled 속성을 true로 만드는데(input.disabled = true), 장고에서는 뷰에서 템플릿으로 폼을 생성하여 보내는 중간에 폼의 필드 속성을 변경하여 처음부터 disabled 된 채로 출력하게 하는 방법도 있어 이를 소개하고자 한다. in views for field in form.fields: form.fields[field].widget.attrs['disabled'] = True 이렇게 하면 이 폼을 전달받은 템플릿에서 폼을 렌더링 할 때 이미 모든 input이 disabled된 채로 출력되어 별..
장고 프레임워크에서는 Formset을 활용하여 여러 개의 폼을 저장하고 관리할 수 있는데, 뷰에서 Formset을 생성하여 템플릿으로 보내면, 기본적으로 비어있는 폼 한 세트가 포함된다. 매번 한 개 이상의 폼이 저장되어야 하는 페이지라면 상관없으나, 상황에 따라 폼을 렌더링하지 않도록 컨트롤 할 수도 있어야 하는데 이때 폼의 empty_permitted 속성을 활용하여 문제를 해결할 수 있다(공식 문서와 검색을 통해 발견한 내용들은 대체로 empty_permitted를 폼 자체에 선언하여 사용하는 방식이였으나, 나의 경우에는 폼에 필수 입력값들이 있어 이를 장고 validator를 통해 validate하는 과정을 무조건 거쳐야 했고 필요에 따라 빈 폼을 렌더링하기도 해야했기에 필요에 따라 빈 폼을 렌더..