바뀜
둘러보기로 가기
검색하러 가기
19번째 줄:
19번째 줄:
− +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
29번째 줄:
44번째 줄:
+
+
+
+
+
41번째 줄:
61번째 줄:
+
+
+
+
+
+
+
+
+
+
+
+
+
→정의
폼을 사용하기 위해선 폼 클래스를 정의해야 한다.
폼을 사용하기 위해선 폼 클래스를 정의해야 한다.
일반적으로 앱의 forms.py 안에 정의한다.<syntaxhighlight lang="python">
일반적으로 앱의 forms.py 안에 정의한다.
{| class="wikitable"
|+
!
!일반폼
!모델폼
|-
|개요
|
|모델에서 사용하는 제약 그대로 사용할 경우 사용한다.
|-
|기본형태
|
|<syntaxhighlight lang="python">
from django import forms
from django import forms
from .models import 모델 # 폼을 적용할 모델을 불러온다.
from .models import 모델 # 폼을 적용할 모델을 불러온다.
# fields에 '__all__'을 따옴표까지 함께 넣어주면 모든 필드를 가져오라는 명령이 된다.
# fields에 '__all__'을 따옴표까지 함께 넣어주면 모든 필드를 가져오라는 명령이 된다.
</syntaxhighlight>
</syntaxhighlight>
|-
|
|
|
|}
=== 폼필드 제약 ===
=== 폼필드 제약 ===
폼필드 안의 옵션에 속성=forms.CharFiedl(....., widget={'class'='클래스값', ...}) 와 같이 옵션을 추가해주면 된다.(역시, HTML에서 입력할 수 있기 때문에 분업을 하는 경우 굳이 사용하진 않는다.)
폼필드 안의 옵션에 속성=forms.CharFiedl(....., widget={'class'='클래스값', ...}) 와 같이 옵션을 추가해주면 된다.(역시, HTML에서 입력할 수 있기 때문에 분업을 하는 경우 굳이 사용하진 않는다.)
== 메타클래스 ==
===폼 라벨 붙이기===
모델에서 사용한 속성 이름이 웹페이지에 그대로 드러나는데, 내부에서 처리하는 변수명과 외부에 드러나는 라벨이 달라야 할 때가 있다. 이 역시 form을 수정함으로써 기능한다.<syntaxhighlight lang="python">
class QuestionForm(forms.ModelForm):#모델폼 상속
class Meta:
labels = { # 이 속성의 추가로 나타내는 내용을 표시할 수 있음.
'subject': '제목',
'content': '내용',
}
</syntaxhighlight>