Django 百分比表单域

Django percentage form field

我想在 Django 中使用百分比表单字段。基本上在我的模型中我有一个浮动字段。使用模型表单时的默认设置是验证它是一个数字的文本输入。如果用户要输入 40%,则必须输入 0.4。我想要的是他们可以输入的可选百分比符号。因此,他们可以输入 0.4 或 40%。

Django 中是否内置了类似的东西?如果不是,为什么?我希望这是经常使用的东西。或者我告诉他们这是一个百分比字段并强制他们只填写 40?

您可以很容易地创建自己的验证器

def valid_pct(value):
    if value.endswith("%"):
       return float(value[:-1])/100
    else:
       try:
          return float(value)
       except ValueError:          
          raise ValidationError(
              _('%(value)s is not a valid pct'),
                params={'value': value},
           )

... models.py

class MyModel(models.Model):
    pct = models.StringField(validators=[valid_pct])