2014-09-22 73 views
0

如何定义接受Float百分比数字的字段?例如8.4%在Django中添加数字和符号

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

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

回答

1

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

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

你的意思是 – k19Uch 2014-09-22 14:29:21

+0

@ k19Uch我的意思是增加的百分比符号在你的模板“在我的模板添加比例”。例如,在模板中可以使用'{{percentage}}&#38'。如果“百分比”的值是“8.4”,则显示为“8.4%”。如果你想说,比现有的价值增加5%,你可以轻松做到这一点,因为它只是一个floatfield。 – pad 2014-09-22 14:40:47

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)