Django model.forms 사용자 필드 추가
model form에서 추가로 별도의 사용자 필드를 추가하고 싶다면, 아래처럼 추가로 forms.필드타입 으로 선언해서 사용하면 된다.
label, widget 용례도 참고해 보면 좋다. required=False 도 옵션으로 주면, 필수 항목으로 추가 되지 않는다.
class FirmwareForm(forms.ModelForm): is_fileinclue = "enctype=multipart/form-data" autogen = forms.BooleanField(label=_("중복시 자동변경"), widget=forms.CheckboxInput(attrs={"class": "form-check-input", "type": "checkbox"}), required=False) class Meta: model = Firmware fields = ["company", "dtype", "content"] labels = { "company": _("*회사"), "dtype": _("타입"), "content": _("파일"), } widgets = { "company": forms.Select(attrs={"class": "form-select"}), "dtype": forms.Select(attrs={"class": "form-select", "required": True, "placeholder": "타입"}), # "content": forms.FileInput(attrs={"class": "form-control", "style":"width: 100px;"}), # "content": forms.FileField('첨부 파일', upload_to='uploads/'), }
사용할 때는 일반 필드와 동일하다.
if form.cleaned_data["autogen"]:
이런 식으로 값을 바로 보면 된다.
참고 사이트
예제 코드를 볼 수 있다. Django Forms BooleanField 예제 코드들
class CopyPermissionForm(forms.Form): """ Holds the specific field for permissions """ copy_permissions = forms.BooleanField( label=_('Copy permissions'), required=False, initial=True, )