2014-09-22 55 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)