Django의 forms.Form과 forms.ModelForm
그 누구도 날 유사점과 장고의 차이로 설명 할 수 forms.Form및 forms.ModelForm?
에서 만든 양식은 사용자 forms.Form가 수동으로 구성합니다. 모델과 직접 상호 작용하지 않는 양식에 사용하는 것이 좋습니다. 예를 들어, 데이터베이스와 상호 작용할 필요는없는 연락처 양식 또는 뉴스 레터 구독 양식이 있습니다.
생성 된 양식 forms.ModelForm이 자동으로 생성 된 다음 나중에 사용자가 수정할 수있는 위치입니다. 가장 좋은 예는 Django 웹 사이트에서 제공하는 훌륭한 문서에서 나온 것입니다.
forms.Form:
문서 : 양식 객체 다음
을 사용하여 만든 일반 양식의 예 forms.Form:
from django import forms
class ContactForm(forms.Form):
subject = forms.CharField(max_length=100)
message = forms.CharField()
sender = forms.EmailField()
cc_myself = forms.BooleanField(required=False)
forms.ModelForm:
문서 : 문서 에서 바로 모델
에서 양식 만들기 :
양식이 Django 모델을 직접 추가하거나 편집하는 데 사용되는 경우
ModelForm모델 설명이 중복되지 않도록 a 를 사용할 수 있습니다 .
다음으로 생성 된 모델 양식의 예 forms.Modelform:
from django.forms import ModelForm
from . import models
# Create the form class.
class ArticleForm(ModelForm):
class Meta:
model = models.Article
이 양식에는 Article생성 된 모델 과 동일한 필드 유형이 모두 자동으로 포함됩니다 .
유사점은 둘 다 위젯을 사용하여 양식 입력 세트를 생성하고 둘 다 브라우저에서 보낸 데이터의 유효성을 검사한다는 것입니다. 차이점은 ModelForm이 지정된 모델 클래스에서 필드 정의를 가져오고 기본 모델을 데이터베이스에 저장하는 방법도 있다는 것입니다.
내장 UserCreationForm myapp / forms.py를 확장하는 방법은 다음과 같습니다 .
from django import forms
from django.contrib.auth.forms import UserCreationForm
class RegisterForm(UserCreationForm):
first_name = forms.CharField(max_length=30)
last_name = forms.CharField(max_length=30)
email = forms.CharField(max_length=75)
class Meta(UserCreationForm.Meta):
fields = ('username','first_name','last_name', 'email')
참고 URL : https://stackoverflow.com/questions/2303268/djangos-forms-form-vs-forms-modelform
'Development Tip' 카테고리의 다른 글
| 이상한 그라데이션 테두리 효과 (0) | 2020.11.01 |
|---|---|
| "이 설치에서는 프로젝트 유형이 지원되지 않습니다."오류 (0) | 2020.11.01 |
| asp.net 경로에서 물결표 (~) 사용 (0) | 2020.11.01 |
| ImportError : mock이라는 모듈이 없습니다. (0) | 2020.11.01 |
| HttpClient 요청에서 IOException 발생 (0) | 2020.11.01 |