我想在Django中使用百分比表单字段。基本上在我的模型中我有一个浮点字段。使用模型表单时的默认值是一个文本输入,用于验证它是否为数字。如果用户想要输入40%,则必须输入0.4。我想要的是他们可以输入的可选百分比符号。因此,他们可以输入0.4或40%。
Django内置了类似的内容吗?如果没有,为什么?我希望这是经常使用的东西。或者我告诉他们这是一个百分比字段并迫使他们填写40?
答案 0 :(得分:5)
您可以轻松创建自己的验证器
def valid_pct(val):
if val.endswith("%"):
return float(val[:-1])/100
else:
try:
return float(val)
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])