# articles/forms.py
from django import forms
class ArticleForm(forms.Form):
title = forms.CharField(max_length=10)
content = forms.CharField(widget=forms.Textarea)
{{form.as_p}}
<input type="submit">
class ArticleForm(forms.Form):
NATION_A = 'kr'
NATION_B = 'ch'
NATION_C = 'jp'
NATIONS_CHOICES = [
(NATION_A, '한국'),
(NATION_B, '중국'),
(NATION_C, '일본'),
]
title = forms.CharField(max_length=10)
content = forms.CharField(widget=forms.Textarea)
nation = forms.ChoiceField(choices=NATIONS_CHOICES)
# nation = forms.ChoiceField(choices=NATIONS_CHOICES, widget=forms.RadioSelect)
Widgets에 대한 자세한 내용Meta Data
- 데이터를 표한하기 위한 데이터
ex) 사진 데이터(촬영시각, 렌즈, 조리개 값 등)
def greeting():
return "Hello World"
# 호출 => 반환값 출력
print(greeting()) # 안녕하세요
# 참조 => 참조값 출력
print(greeting) # <function greeting at 0x10651caf0>
is_valid()
Boolean
형태로 반환is_valid()
의 반환 값이 False인 경우 form.errors
속성에 유효성 검증 실패 원인이 딕셔너리 형태로 저장됨save()
instance 인자가 기입되지 않은 경우 : save()는 새 인스턴스를 만듦(CREATE)
instance 인자가 기입된 경우 : save()는 해당 인스턴스를 수정(UPDATE)
# CREATE
form = ArticleForm(request.POST)
form.save()
# UPDATE
form = ArticleForm(request.POST, instance = article)
form.save()
request.POST
instance
- 수정이 되는 대상 인스턴스
- save() method
save(commit=False)
데이터베이스에 저장되지 않은 인스턴스를 반환
저장하기 전 객체에 대한 사용자 지정 처리를 수행하는 경우 유용하게 사용