Djangoのバリ

Djangoのバリ

Djangoは再検証、判定ロジック機能に使用することができます

バリ

  • UniqueValidator
    • この検証は、制約を強制するユニーク= Trueのフィールドをモデル化するために使用することができます。これは、必要なパラメータとオプションパラメータメッセージを取ります。
      • クエリセットが必要 - これは、クエリセットの一意性を強制することになっています。
      • メッセージ - 認証が失敗したときに使用されるエラーメッセージ。
      • 検索-従来例の検索では、検証値を持っています。デフォルトでは、「正確な」です。
        これは、以下のように適用されたバリデータシリアライザフィールドにすべきである:
        バリ= [UniqueValidator(BlogPost.objects.allクエリセット=())]
  • UniqueTogetherValidator
    • この手順では、制約を強制するためのモデルunique_together例を検証するために使用することができます。これは、2つの必須パラメータと1件のオプションのパラメータのメッセージがあります。
      • クエリセットが必要 - これは、クエリセットの一意性を強制することになっています。
      • フィールドが必要 - フィールド名またはタプルセットのユニークなリストを作成してください。これらは、クラスのフィールドのシーケンスとして存在している必要があります。
      • メッセージ - 認証が失敗したときに使用されるエラーメッセージ。

      クラスTaskSerializer(serializers.ModelSerializer):
      クラスのMeta:
      モデル=タスク
      フィールド=( '名前'、 'キーワード'、 'user_idの')

          validators = [
              UniqueTogetherValidator(
                  queryset=Task.all(),
                  fields=['user_id', 'name'],
                  message='相同任务名已存在'
              ),
              UniqueTogetherValidator(
                  queryset=Task.all(),
                  fields=['user_id', 'keyword'],
                  message='相同关键字已存在'
              ),
          ]

オプションのフィールド

すべてのフィールドが必要=真の検証「のみで、」デフォルトでは、必須です。いくつかのケースでは、あなたが明示的に要求することをお勧めします= Falseのは、この場合には、行動の必要な検証が明確ではないが、フィールドのいずれかに適用されます。

このケースでは、通常のクラスの検証プログラムシーケンスから除外しますが、任意の検証ロジックの観点で書かれた明示的.validate()メソッドまたは。

例えば:

class BillingRecordSerializer(serializers.ModelSerializer):
    def validate(self, data):
        # Apply custom validation either here, or in the view.

    class Meta:
        fields = ['client', 'date', 'amount']
        extra_kwargs = {'client': {'required': False}}
        validators = []  # Remove a default "unique together" constraint.

カスタムバリデータ

def judge(aaa):
    if len(aaa) != 40:
        print('长度不正确')
        return

  
  
from xxx import judge
validators = 

おすすめ

転載: www.cnblogs.com/liuhuan086/p/11896970.html