К сожалению, в django нет PositiveFloatField
.Но вы можете использовать MinValueValidator .
MinValueValidator
код:
class MinValueValidator(BaseValidator):
message = _('Ensure this value is greater than or equal to %(limit_value)s.')
code = 'min_value'
def compare(self, a, b):
return a < b # super simple.
Добавить валидатор в поле с плавающей точкой.
class YourModel(models.Model):
po_float = models.FloatField(validators=[MinValueValidator(0)]
m = YourModel(po_float=-1)
m.clean_fields() # raise ValidationError
Примечание : проверка django не запускается автоматически.Таким образом, вы должны запустить obj.clean_fields()
или obj.clean()
.Проверьте это Документ