sql >> データベース >  >> RDS >> PostgreSQL

DjangoIntegerRangeFieldの検証に失敗しました

    MinValueValidator およびMaxValueValidator は整数用であるため、ここで使用するバリデーターは正しくありません。代わりに、範囲専用のバリデーターを使用してください:RangeMinValueValidator およびRangeMaxValueValidator

    これらのバリデーターは両方ともモジュールdjango.contrib.postgres.validatorsにあります 。

    ここにリンクがあります バリデーターのソースコードに。

    また、IntegerRangeField Pythonではpsycopg2.extras.NumericRangeとして表されます オブジェクトなので、defaultを指定するときは、文字列の代わりにそれを使用してみてください モデルのパラメータ。

    注:NumericRange デフォルトでは、オブジェクトには下限が含まれ、上限が含まれないため、NumericRange(0、100)には0が含まれ、100は含まれません。おそらくNumericRange(1、101)が必要です。 boundsを指定することもできます NumericRangeのパラメータ 数値を変更する代わりに、包含/除外のデフォルトを変更するオブジェクト。 NumericRangeオブジェクトのドキュメント を参照してください。 。

    例:

    # models.py file
    from django.contrib.postgres.validators import RangeMinValueValidator, RangeMaxValueValidator
    from psycopg2.extras import NumericRange
    
    class SomeModel(models.Model):
        age_range = IntegerRangeField(
            default=NumericRange(1, 101),
            blank=True,
            validators=[
                RangeMinValueValidator(1), 
                RangeMaxValueValidator(100)
            ]
        )
    



    1. PostgreSQLが起動しません:server.keyにはグループまたはワールドアクセスがあります

    2. 重複を配置し、レコードに順番に番号を付けます-MySQL

    3. jQueryAJAXSuccessでMySqlから特定の応答を取得する

    4. mysql-別のインデックスで全文検索を支援する方法はありますか?