Django - Code Analysis

김기훈·2025년 11월 29일

Django

목록 보기
9/17

Django & DRF


forms.py

  • HTML Form을 자동으로 만들어주는 Django ModelForm

  • from django import forms

    • 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 객체를 생성하거나 수정

profile
안녕하세요.

0개의 댓글