Django & DRF
- Django의 폼 기능을 모아놓은 모듈을 불러오는 코드.
- 이 파일 전체가 “화면에서 입력받는 폼”을 정의하는 곳이라서 forms를 불러온 것
from .models import Account
- 이 폼은 “Account를 만들거나 수정할 때 사용하는 폼”이라는 뜻
class AccountForm(forms.ModelForm):
- 1. forms.ModelForm 상속 → “이 폼은 특정 모델(Account)과 연결된 폼이다”
- forms.Form은 필드를 직접 다 정의해줘야 하는 일반 폼
- forms.ModelForm은 모델의 필드를 가져와서 자동으로 폼을 만들어주는 폼
class Meta:
- 1. ModelForm 안의 Meta 클래스는
- 이 폼이 어떤 모델과 연결되는지, 어떤 필드를 쓸지, 어떤 위젯을 쓸지 설정하는 곳
- 즉, 일종의 설정(config) 전용 내부 클래스
model = Account
fields = ["bank_code", "account_number", "account_type", "name"]
- 2. Account 모델의 필드 중에서, 이 폼에서 사용할 필드를 골라주는 것
- 즉, 이 폼에는 아래 4개만 입력받는다
widgets = {
"bank_code": forms.Select(),
- 3. bank_code를 드롭다운(select) 으로 보여주겠다는 뜻
"account_type": forms.Select(),
"account_number": forms.TextInput(attrs={"placeholder": "계좌번호"}),
- 4. account_number는 텍스트 입력 칸으로 표시.
- 5. attrs는 HTML 태그의 속성(attribute)을 넣는 곳.
"name": forms.TextInput(attrs={"placeholder": "계좌별명"})
}
- AccountForm() → 기본적으로 Account 모델의 필드를 폼으로 만들어줌
- form.save() → Account 객체를 생성하거나 수정