Django의 ModelForm 구성 요소 소개(코드 예)

不言
풀어 주다: 2019-03-13 13:23:17
앞으로
2352명이 탐색했습니다.

이 기사는 Django의 ModelForm 구성 요소(코드 예제)에 대한 소개를 제공합니다. 이는 특정 참조 가치가 있으므로 도움이 필요할 수 있습니다.

보통 Django 프로젝트에서 우리가 작성하는 대부분의 내용은 Django 모델과 밀접하게 매핑되는 형식입니다. 예를 들어 책 모델이 있고 모델에 책 정보를 추가하고 편집하는 양식을 만들 수도 있습니다. 이 경우 모델에서 해당 필드를 이미 정의했으므로 양식에서 필드를 정의하는 것은 중복됩니다.

이러한 이유로 Django는 Django의 모델인 ModelForm에서 Form을 생성할 수 있는 보조 클래스를 제공합니다.

modelForm은

form과 모델의 조합을 정의합니다.

from django import forms
from crm import models

class RegForm(forms.ModelForm):
    password = forms.CharField(
        widget=forms.PasswordInput,
        label='密码',
        min_length=6,
        max_length=12
    )
    re_password = forms.CharField(
        widget=forms.PasswordInput,
        label='确认密码',
        min_length=6,
        max_length=12
    )
    mobile = forms.CharField(

    )
    class Meta:
        model = models.UserProfile  # 指定model
        fields = '__all__'  # 全部字段
        # fields = ['username','password']  # 指定字段
        exclude = ['is_active']  # 除某个字段之外的其余字段
        labels = {
            'username':'用户名'
        }
        error_messages = {
            'min_length': '太短了',
        }
        widgets = {
            'username': forms.TextInput(attrs={'placeholder': '用户名@xx.com'}),
        }
로그인 후 복사

클래스 메타에서 일반적으로 사용되는 매개 변수:

model = models.Book  # 对应的Model中的类
fields = "__all__"  # 字段,如果是__all__,就是表示列出所有的字段
exclude = None  # 排除的字段
labels = None  # 提示信息
help_texts = None  # 帮助提示信息
widgets = None  # 自定义插件
error_messages = None  # 自定义错误信息
로그인 후 복사

ModelForm의 유효성 검사

일반 양식 양식 유효성 검사 유형과 유사하게 ModelForm 양식 유효성 검사는 is_valid()를 호출하거나 오류 속성에 액세스할 때 암시적으로 호출됩니다.

Form 클래스를 사용하는 것처럼 로컬 후크 방법과 전역 후크 방법을 사용자 정의하여 사용자 정의 확인 규칙을 구현할 수 있습니다.

특정 필드를 재정의하지 않고 유효성 검사기 속성을 설정하면 ModelForm은 모델 필드의 유효성 검사기에 따라 확인됩니다.

save() 메소드

각 ModelForm에도 save() 메소드가 있습니다. 이 메서드는 양식에 바인딩된 데이터를 기반으로 데이터베이스 개체를 만들고 저장합니다. ModelForm의 하위 클래스는 기존 모델 인스턴스를 키워드 인수 인스턴스로 받아들일 수 있습니다. 이 기능이 제공되면 save()가 인스턴스를 업데이트합니다. 제공되지 않은 경우 save()는 모델의 새 인스턴스를 생성합니다.

>>> from myapp.models import Book
>>> from myapp.forms import BookForm

# 根据POST数据创建一个新的form对象
>>> form_obj = BookForm(request.POST)

# 创建书籍对象
>>> new_ book = form_obj.save()

# 基于一个书籍对象创建form对象
>>> edit_obj = Book.objects.get(id=1)
# 使用POST提交的数据更新书籍对象
>>> form_obj = BookForm(request.POST, instance=edit_obj)
>>> form_obj.save()
로그인 후 복사

위 내용은 Django의 ModelForm 구성 요소 소개(코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:cnblogs.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿