Django의 ModelForm을 이용하다 보면 기본 양식으로는 사용하기 편하고 좋은데, 세세하게 주위 디자인과 맞춰주려면 어떡해야 할지 여기저기 찾아봐도 잘 나오지 않습니다.
저는 bootstrap에서 form을 이용해야 해서, form field에 class = "form-control"을 각 위젯마다 추가해주어야 하는데, 아래와 같은 방식으로 처리하였습니다:
class SupplierForm(ModelForm): class Meta: model = Supplier fields = ['name', 'memo', 'status', ] def __init__(self, *args, **kwargs): super(ModelForm, self).__init__(*args, **kwargs) self.fields['name'].widget.attrs.update({ 'class': 'form-control' })
ModelForm을 상속하였기 때문에, __init__에서 super의 __init__를 call 해주고, 각 필드의 속성을 update 해주는 방식으로 하니 되는군요. 좀더 복잡하게 추가하는 것도 가능합니다.
'Dev > python' 카테고리의 다른 글
virtualenv 설치시 오류(locale) (5) | 2018.02.05 |
---|---|
pip으로 mysql-connector-python 설치 (0) | 2015.02.07 |
[python] euc-kr 파일을 읽어서 utf-8로 작업할 때 (0) | 2015.02.06 |
MySQL-python 설치하기 (Ubuntu) (1) | 2015.01.21 |
[python] 1시간 전 datetime 구하기 (0) | 2015.01.07 |