Django(장고) 폼 필드 html name 속성 강제 변경 방법

2019. 1. 31. 00:21Develop/Python

728x90

How to Change Django Form field html attribute of name?

장고 폼 필드에서 html 'name' 속성을 변경하는 방법!?


Django Web Framework를 사용하다가 name속성이 변경되지 않는 문제로

JS 사용에 난항(?) 을 겪은적이 있어서 적용하는 방법을 기억의 목적도있지만,

공유를 해보고자 합니다.


뭐 물론, id나 class를 통한 방법을 사용해도 되지만, 

POST 데이터를 받는다던가 할때도 신경써야하기때문에 귀찮아서

 name을 바꾸는게 편하네요...


먼저 forms.py 입니다.






해당 폼을 보여주기 위한 CBV(Class Based View)입니다.






html은 다음과 같은 내용을 보여주게 됩니다.

name 속성을 제외하곤 모두 정상적으로 동작을 하죠.





name은 변수명을 따라가게 설계가 되어있는데 여기에 쓰이는 렌더링을

강제로 변경하는 함수를 사용하여 forms.py를 다음과 같이

set_field_html_name 함수를 만들고

선언해놓은 form class 에서 __init__ 초기화 함수를 이용하여 

해당 필드 이름을 강제로 초기화시킵니다.






forms.py를 변경하고 결과물을 보게된다면





name이 변경되어 적용된 결과물을 볼 수 있습니다.

728x90