Django - Form 태그에 속성 값 추가하기

html form 필드에 다양한 속성값을 주고 싶다...이건 기본이다.

장고 폼을 쓰면서 이런 속성을 쉽게 줄 수 있는 방법은 다양하게 있겠지만 그냥 아래 글 처럼 속성을 주는 것이 편할 듯

 

이글을 참고하시길 => Django Form에서 DOM class 설정 등의 front-end 조작법

 

# myapp/forms.py

class MyForm( forms.ModelForm ):
  class Meta:
    model = MyModel

    def __init__( self, *args, **kwargs ):
        super( MyForm, self ).__init__( *args, **kwargs )
        self.field[ 'my_field' ].widget.attrs.update( {
            'class': 'form-control',
            'id': 'form-id',
            'placeholder': 'Do not use numbers.' } )



출처: https://dgkim5360.tistory.com/entry/django-form-style-manipulation?category=892553 [개발새발로그]

 

그리고, 기존에 하던 방식 그냥 Meta 클래스에 기록해 둬도 되네

class MyForm( forms.ModelForm ):
    class Meta:
        model = MyModel
        fields = ["company"]
        labels = {
            "company": _("거래처 선택"),
        }
        widgets = {
            "company": forms.Select(attrs={"class": "form-control", "placeholder": "", "style":"width: 100%;"}),
        }

 

그리고, 추가로 속성값 없이 속성 키 만 있는 것은 그냥 True, False 로 주면 된다.

 

"Required":True 

 

이런식으로 속성에 주면 실제 html 에는

 

<input .... required> 이렇게 나오게 된다.

 

 

ㄲㅡㅌ

틀로 막 찍어낼 수 있도록 코딩 라이브러리가 잘되어 있으면

Ella Pix 님의 사진, 출처: Pexels