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
의 정규 표현식 또는 미리 컴파일된 정규 표현식 대상입니다.보통 일치하는 것을 찾지 못할 때 message
과 code
이 있는 ValidationError
의 이상을 던진다.이 표준 행위는 inverse_match
을 True
으로 설정하여 반전시킬 수 있으며, 이 경우 일치하는 것을 찾으면 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_address
및 validate_ipv6_address
값을 사용합니다.validate_comma_separated_integer_list
validate_comma_separated_integer_list
값이 정수의 쉼표 구분 목록인지 확인하는
RegexValidator
의 실례MaxValueValidator
_class _
MaxValueValidator
(_max_value_, _message=None_)[source] value
이 max_value
보다 크면 'max_value'
코드가 있는 ValidationError
이상을 던진다.Changed in Django 1.8:
message
매개 변수가 추가되었습니다.MinValueValidator
_class _
MinValueValidator
(_min_value_, _message=None_)[source] value
이 min_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.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.