【问题标题】:Adding number and Symbols in Django在 Django 中添加数字和符号
【发布时间】:2014-09-22 13:51:58
【问题描述】:

如何定义一个接受浮点百分比数字的字段?例如 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])

【问题讨论】:

    标签: python django forms validation


    【解决方案1】:

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

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

    【讨论】:

    • “在我的模板中添加百分比”是什么意思
    • @k19Uch 我的意思是在模板中添加百分比符号。例如,在模板中执行{{ percentage }}&#38。如果percentage 的值为8.4,它将显示为“8.4%”。如果您愿意,例如在现有值上增加 5%,您可以轻松地做到这一点,因为它只是一个浮动字段。
    【解决方案2】:

    如果您只想在数据库中保存带有百分号的浮点数,这个正则表达式 ^\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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-18
      • 2013-10-27
      • 1970-01-01
      • 2021-09-03
      • 2020-08-10
      • 2017-06-25
      • 1970-01-01
      相关资源
      最近更新 更多