validators = [MinValueValidator]はDjangoでは機能しません

Source python django

フォームフィールドが負の値を受け入れないように、DjangoでFloatFieldの最小値を設定したいと思います。整数の場合、データ型をPositiveIntegerFieldに変更しましたが、浮動小数点フィールドの場合、最小値が機能しません。
from django.core.validators import MaxValueValidator, MinValueValidator

max_discount = models.FloatField( verbose_name=u'Maximum Discount', validators = [MinValueValidator(0.0)])
推奨答え
あなたのコード:
from django.core.validators import MaxValueValidator, MinValueValidator

max_discount = models.FloatField( verbose_name=u'Maximum Discount', validators = [MinValueValidator(0.0)])

うまく見えます。
ただし、注意する必要があります

validators will not be run automatically when you save a model, but if you are using a ModelForm, it will run your validators on any fields that are included in your form.



詳細については、docsを参照してください。

フォームに何らかのhtml属性検証を追加することもできます。次に例を示します。
<input type="number" min="0.0">

サーバー側の検証に。

編集

フォームフィールドが管理インターフェイスにある場合は、このフィールドのウィジェット(基本的にはHTML)をカスタマイズできます。管理インターフェースのフィールドにカスタムウィジェットを追加する方法をhereで確認できます。
その他答え #1
私はこのように同じことをしました、
from django.db import models
from django.core.validators import MinValueValidator, MaxValueValidator

class Coupon(models.Model):
    code = models.CharField(max_length=50,
                               unique=True)
    valid_from = models.DateTimeField()
    valid_to = models.DateTimeField()
    discount = models.IntegerField(
                      validators=[MinValueValidator(0),
                                  MaxValueValidator(100)])
    active = models.BooleanField()
    def __str__(self):
        return self.code

私はこのような割引コードを設定しました、
discount = models.IntegerField(
                          validators=[MinValueValidator(0),
                                      MaxValueValidator(100)])

割引:適用する割引率(これはパーセンテージであるため、0〜100の値を取ります)。このフィールドのバリデーターを使用して、受け入れられる最小値と最大値を制限します。

あなたはこの方法を試すことができますあなたのために働いているかもしれません。

ありがとう。
その他答え #2
あなたの問題は小数の定義にあります。
あなたはこのようにそれをするべきです:
validators = [MinValueValidator(Decimal('0.0'))]

関連記事

Angular2ブラウザがサポートされていない場合に警告ページを表示する方法
すべてのデータをvuex状態で保存する必要があります
imageでの正方形の検出
Javaクラス構造をPythonクラスに変換します
kerasの加重mseカスタム損失関数