| revision-up-to: | 17812 (1.4) |
|---|
リリースノートを参照してくださいバリデータ (validator) は、一つの値を引数に取り、何らかの条件に合わなければ
ValidationError を送出する呼び出し可能オブジェク
トです。異なる種類のフィールド間で検証処理を再利用するためにバリデータを使うこと
もできます。
たとえば、偶数だけを許可するバリデータは次のようになります:
from django.core.exceptions import ValidationError
def validate_even(value):
if value % 2 != 0:
raise ValidationError(u'%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])
バリデータがフォームでどのように実行されるかについては フォームの検証 を、モデルでどのように実行されるかについては
オブジェクトの検証 を参照してください。なおモデルの
保存時にバリデータが自動的に実行されることはありませんが、
ModelForm を使っている場合は、バリデータがフォーム中の
全フィールドにて実行されます。モデルの検証とフォームとの連携については
ModelForm のドキュメント を参照してください。
django.core.validators モジュールにはモデルとフォームフィールドに使える
呼び出し可能なバリデータが含まれています。それらは内部的に使われるものですが、
あなたのフィールドで使うこともできます。独自の field.clean() メソッドに
加えて、あるいは代わりに使うことも可能です。
RegexValidator¶RegexValidator([regex=None, message=None, code=None])¶| Parameters: |
|---|
regex¶指定された value を検索するための、正規表現文字列またはコンパイル
済み正規表現オブジェクトです。もし何もマッチしなかった場合、
message と code を設定した
ValidationError を送出します。デフォルト
では、あらゆる文字列にマッチします (空文字列にもマッチします)。
message¶検証に失敗したときに ValidationError が
使うエラーメッセージです。デフォルトでは "Enter a valid value"
になります。
code¶検証に失敗したときに ValidationError が
使うエラーコードです。デフォルトでは "invalid" になります。
URLValidator¶URLValidator([verify_exists=False, validator_user_agent=URL_VALIDATOR_USER_AGENT])¶値が URL に見えること、またオプションでその URL が実際に存在する (つまり 404
ステータスコードが返らない) ことを確認する RegexValidator です。
値が URL に見えない場合はエラーコード 'invalid' で、その URL が実際に
存在しない場合はエラーコード 'invalid_link' で送出します。
| Parameters: |
|
|---|
verify_exists¶True に設定すると、このバリデータは URL が実際に存在するか確認
します。
validator_user_agent¶verify_exists が True の場合、 Django は URL の存在を確認
するリクエストの “User-agent” としてこの値を使用します。
validate_email¶validate_email¶値がメールアドレスに見えることを確認する RegexValidator のインスタ
ンスです。
validate_slug¶validate_slug¶値がアルファベット、数字、アンダースコア、ハイフンだけで構成されていることを
確認する RegexValidator のインスタンスです。
validate_ipv4_address¶validate_ipv4_address¶値が IPv4 アドレスのように見えることを確認する RegexValidator の
インスタンスです。
validate_ipv6_address¶リリースノートを参照してくださいvalidate_ipv6_address¶django.utils.ipv6 を使って IPv6 アドレスの妥当性を確認します。
validate_ipv46_address¶リリースノートを参照してくださいvalidate_ipv46_address¶validate_ipv4_address と validate_ipv6_address の両方を使って
値が有効な IPv4 または IPv6 アドレスであることを確認します。
validate_comma_separated_integer_list¶validate_comma_separated_integer_list¶値がカンマで区切られた整数のリストであることを確認する
RegexValidator のインスタンスです。
MaxValueValidator¶MaxValueValidator(max_value)¶value が max_value より大きい場合にコード 'max_value' の
ValidationError を送出します。
MinValueValidator¶MinValueValidator(min_value)¶value が min_value より小さい場合にコード 'min_value' の
ValidationError を送出します。
MaxLengthValidator¶MaxLengthValidator(max_length)¶value の長さが max_length より長い場合にコード 'max_length' の
ValidationError を送出します。
MinLengthValidator¶MinLengthValidator(min_length)¶value の長さが min_length より短い場合にコード 'min_length' の
ValidationError を送出します。
Oct 26, 2017