django 1.8 공식 문서 번역: 13-12 검증기

6751 단어 django
검증기
컴파일 검증기
검증기는 호출 가능한 대상으로 값을 받아들이고 일부 규칙에 부합되지 않을 때 ValidationError 이상을 던진다.검증기는 서로 다른 유형의 필드 사이에서 검증 논리를 반복적으로 사용하는 데 도움이 된다.
예를 들어 이 검증기는 짝수만 허용한다.
from django.core.exceptions import ValidationError

def validate_even(value):
    if value % 2 != 0:
        raise ValidationError('%s is not an even number' % value)

필드 validators 매개변수를 사용하여 모델 필드에 추가할 수 있습니다.
from django.db import models

class MyModel(models.Model):
    even_field = models.IntegerField(validators=[validate_even])

인증서가 실행되기 전에 값이 Python으로 바뀌므로 양식에 같은 인증서를 사용할 수 있습니다.
from django import forms

class MyForm(forms.Form):
    even_field = forms.IntegerField(validators=[validate_even])

너도 __call__() 방법이 있는 종류를 사용하여 더욱 복잡하거나 설정할 수 있는 검증기를 실현할 수 있다.예를 들어 RegexValidator은 이런 기교를 사용했다.클래스 기반 검증기가 validators 모델 필드에 사용되는 옵션이라면deconstruct()_ 그리고 __eq__() 방법으로 그것을 확보할 수 있다마이그레이션된 프레임워크 서열화.
검증기는 어떻게 운행합니까
검증기가 어떻게 표에서 실행되는지에 관해서는양식 유효성 검사.모델에서 어떻게 작동하는지에 관해서는유효성 검사 개체.검증기는 모델을 저장할 때 자동으로 실행되지 않지만, ModelForm을 사용하면, 폼에 포함된 모든 필드에서 검증기를 실행합니다.모형 검증기가 어떻게 표와 상호작용하는지에 관하여ModelForm 문서.
내장된 검증기django.core.validators 모듈은 모델과 폼 필드에 사용되는 일련의 호출 가능한 검증기를 포함한다.그것들은 내부에서 사용하지만, 당신 자신의 필드에도 사용할 수 있다.그것들은 field.clean() 방법 외에 사용하거나 대체할 수 있다.
RegexValidator
_class _ RegexValidator (_regex=None_, _message=None_, _code=None_, _inverse_match=None_, _flags=0_])[[source]
Parameters:
* regex – None이 아닌 경우 regex을 덮어씁니다.정규 표현식 문자열이나 미리 컴파일된 정규 표현식 대상일 수 있습니다. *메시지 – None이 아닌 경우 message을 덮어씁니다.*code – None이 아닌 경우 code을 덮어씁니다.*inverse_match – None이 아닌 경우 inverse_match을 덮어씁니다.*flags – None이 아닌 경우 flags을 덮어씁니다.이 경우 regex은 정규 표현식 문자열이어야 하며, 그렇지 않으면 TypeError 이상을 던져야 한다.regex
검색에 사용되는 value의 정규 표현식 또는 미리 컴파일된 정규 표현식 대상입니다.보통 일치하는 것을 찾지 못할 때 messagecode이 있는 ValidationError의 이상을 던진다.이 표준 행위는 inverse_matchTrue으로 설정하여 반전시킬 수 있으며, 이 경우 일치하는 것을 찾으면 ValidationError이상을 던진다.보통 모든 문자열과 일치합니다. (빈 문자열 포함)message
검증 실패 시 ValidationError에 사용된 오류 정보입니다.기본값은 "Enter a valid value"입니다.code
검증 실패 시 ValidationError에 사용된 오류 코드입니다.기본값은 "invalid"입니다.inverse_match
New in Django 1.7\. regex의 일치 모드.기본값은 False입니다.flags
New in Django 1.7\.
정규 표현식 문자열 regex을 컴파일할 때 사용하는 표식입니다.만약에 regex이 미리 컴파일된 정규 표현식이고 flags을 복제하면 TypeError이상이 발생한다.기본값은 0입니다.
EmailValidator
_class _ EmailValidator (_message=None_, _code=None_, _whitelist=None_])[[source]
Parameters:
* 메시지 – None이 아닌 경우 message을 덮어씁니다.*code – None이 아닌 경우 code을 덮어씁니다.*Whitelist – None이 아니면 whitelist을 덮어씁니다.message
검증 실패 시 ValidationError에 사용된 오류 정보입니다.기본값은 "Enter a valid email address"입니다.code
검증 실패 시 ValidationError에 사용된 오류 코드입니다.기본값은 "invalid"입니다.whitelist
허용된 메일 도메인 이름의 백명단보통 정규 표현식 (domain_regex 속성) 은 @ 기호 뒤에 있는 모든 것을 검증하는 데 사용됩니다.그러나 이 문자열이 백명단에 있으면 검증을 통과할 수 있다.만약 제공되지 않는다면, 기본 화이트 리스트는 ['localhost']이다.점 기호가 포함되지 않은 다른 도메인 이름은 검증을 통과할 수 없기 때문에 필요에 따라 화이트 리스트에 추가해야 합니다.
URLValidator
_class _ URLValidator (_schemes=None_, _regex=None_, _message=None_, _code=None_])[[source] RegexValidator은 값이 URL처럼 보이는지 확인하고 그렇지 않으면 'invalid' 오류 코드가 발생합니다.
메시징 주소와 예약된 IP 공간이 유효한 것으로 간주됩니다.또한 문자로 된 IPv6 주소(RFC 2732)와 유니버설 도메인 이름도 지원합니다.
상위 RegexValidator의 옵션 매개 변수를 제외하고 URLValidator은 추가 옵션 속성을 수락합니다.schemes
검증이 필요한 URL/URI 모드 목록입니다.제공되지 않으면 기본값은 ['http', 'https', 'ftp', 'ftps']입니다.IANA 웹사이트는 유효한 URI 모드의 전체 목록을 참조로 제공합니다.
Changed in Django 1.7:
옵션 schemes 속성이 추가되었습니다.
Changed in Django 1.8:
IPv6 주소, 유니버설 도메인 이름, 검증 정보를 포함하는 URL에 대한 지원이 추가되었습니다.
validate_email validate_email
사용자 정의가 없는 EmailValidator 실례
validate_slug validate_slug
값에 문자, 숫자, 밑줄 및 하이픈만 포함되는지 확인하는 RegexValidator 인스턴스
validate_ipv4_address validate_ipv4_address
값이 IPv4 주소인지 확인하는 RegexValidator 인스턴스
validate_ipv6_address validate_ipv6_address [source]
IPv6 주소인지 확인하려면 django.utils.ipv6을 사용하십시오.
validate_ipv46_address validate_ipv46_address [source]
유효한 IPv4 또는 IPv6 주소는 validate_ipv4_addressvalidate_ipv6_address 값을 사용합니다.
validate_comma_separated_integer_list validate_comma_separated_integer_list
값이 정수의 쉼표 구분 목록인지 확인하는 RegexValidator의 실례
MaxValueValidator
_class _ MaxValueValidator (_max_value_, _message=None_)[source] valuemax_value보다 크면 'max_value' 코드가 있는 ValidationError 이상을 던진다.
Changed in Django 1.8: message 매개 변수가 추가되었습니다.
MinValueValidator
_class _ MinValueValidator (_min_value_, _message=None_)[source] valuemin_value보다 작으면 'min_value' 코드가 있는 ValidationError 이상을 던진다.
Changed in Django 1.8: message 매개 변수가 추가되었습니다.
MaxLengthValidator
_class _ MaxLengthValidator (_max_length_, _message=None_)[source] value의 길이가 max_length보다 크면 'max_length' 코드가 있는 ValidationError의 이상을 던진다.
Changed in Django 1.8: message 매개 변수가 추가되었습니다.
MinLengthValidator
_class _ MinLengthValidator (_min_length_, _message=None_)[source] value의 길이가 min_length보다 작으면 'min_length' 코드가 있는 ValidationError의 이상을 던진다.
Changed in Django 1.8: message 매개 변수가 추가되었습니다.
번역자: Django 문서 공동 번역 팀, 원문: Data validation.
본고는 CC BY-NC-SA 3.0 프로토콜로 발표되었으며 전재는 작가의 서명과 글의 출처를 보존해 주십시오.
Django 문서 협동 번역팀은 일손이 부족해서 관심 있는 친구가 우리에 가입할 수 있습니다. 완전 공익적입니다.교류군: 467338606.

좋은 웹페이지 즐겨찾기