django form 을 사용하여 template에 form 만들때 django templ

 
Sung Ho Hwang

django form 을 사용하여 template에 form 만들때 django template 에서 제공하는 {{form}} 라던지 {{form.id}} 이런 문법을 사용하면 텍스트박스나 버튼같은 위젯의 UI가 디폴트로 나오는데 bootstrap 같은 front-end framework 을 사용하여 custom 으로 만들고 싶을때 bootstrap3 같은 써드파티 앱을 사용하여 {{form | bootstrap}} 하는식으로 말고 구현하려면 form 클래스에서 지정한 model 의 field 에 widget 필드에 class 같은 attribute을 일일히 명시하는식으로 많이하나요? 아니면 django form 이 제공하는 is_valid() 같은 유효성검사같은 혜택을 포기해야하나요? 뭔가 있긴 할것같은데 django 가 제공하는 편의를 충분히 이용하면서 구현하려면 보통 어떤식으로 구현하는지 궁금합니다.

  • 박영록

    form의 tag는 어떻게 생성하든 상관 없이 필드값만 제대로 post된다면 is_valid 호출은 가능합니다.

    Seungho Kim

    저는 개인적으로 form 생성은 django template tag를 이용하고, 디자인은 css로 손보는걸 선호합니다. name 만 맞춰서 폼을 만들면 form validation 할때 피곤하고 특히 select 더 나아가 javascript가 들어간 select는 정말 ㅠㅠ

    Chinseok Lee

    전 widget 커스텀하는 것을 선호하는 편입니다. 그리고 widget 의 attrs 속성을 이용해서 class name 등을 지정해줄 수도 있어요. // widget 내에서 렌더링할 때, 템플릿을 활용하고 있어요.

    https://docs.djangoproject.com/en/1.9/ref/forms/widgets/#django.forms.Widget

    박영록

    저는 템플릿 언어로 mako를 쓰는데, mako로 django form을 렌더링하는 라이브러리를 만들어두고 씁니다. html 코드로 렌더링하는 건 파이썬 코드보다 템플릿에서 해야 할 일이라고 생각하기도 하구요. https://github.com/youngrok/djangox/blob/master/djangox/apps/bs4tl/templates/bs4tl/forms.html

Advertisements