在Django中添加数字和符号

时间:2014-09-22 13:51:59

标签: python django forms validation

如何定义接受浮动百分比数字的字段?例如8.4%

我已经定义了这个字段,但它没有完成这项工作。有什么想法吗?

alphanumeric = RegexValidator(r'^[0-9%]+$', 'Only alphanumeric characters are allowed.')    
add_on_percentage = models.CharField(max_length=10, blank=True, null=True, validators=[alphanumeric])

2 个答案:

答案 0 :(得分:1)

您可以在模型中使用验证器,并在显示数字时在模板中添加百分比。这使您可以轻松地进行任何操作。

from django.core.validators import MaxValueValidator, MinValueValidator
    #in your model..
    percentage = models.FloatField(
        validators = [
            MinValueValidator(0.0), MaxValueValidator(100.0)
    ])

答案 1 :(得分:0)

如果您只想在数据库中保存带有百分比符号的浮点数,则此正则表达式^\d+.\d+%+$将完成此任务。 注意:默认情况下,字段验证仅适用于ModelForm中的用法。 如果您想每次都进行检查,请以这种方式覆盖班级中的save

    def save(self, force_insert=False, force_update=False, using=None,
         update_fields=None):
    self.full_clean()
    return super(YourModel, self).save(force_insert=force_insert, force_update=force_update,
                                   using=using, update_fields=update_fields)