【问题标题】:Django specify decimal places for FloatRangeFieldDjango 为 FloatRangeField 指定小数位
【发布时间】:2019-05-27 13:15:33
【问题描述】:

我有一个具有FloatRangeField 的模型

class Credit(models.Model):

    interest_range = FloatRangeField('Interest', null=True, blank=True)

我有一个模型表格:

class CreditForm(forms.ModelForm):

    interest_range = InclusiveFloatRangeField()

现在,我想指定 2 个固定小数位(仅在 UI 中,数据库检查不重要)

似乎models.FloatRangeField 不支持decimal_places。而且我在 django 文档中找不到任何示例来使用小部件为 FloatRangeField 指定小数位。

django 版本:2.2

【问题讨论】:

标签: python django django-models django-forms


【解决方案1】:

据我所知,您可以将fields 属性传递给forms.DecimalRangeField,它会覆盖默认的base_field

interest_range = forms.DecimalRangeField(
    fields=[forms.DecimalField(decimal_places=2, max_digits=10, required=False),
            forms.DeciamlField(decimal_places=2, max_digits=10, required=False)])


【讨论】:

    【解决方案2】:
    class LenderProfile(models.Model):
          interest_range = DecimalField('Interest',decimal_places=2, null=True, blank=True)
    

    模型中的 DecimalField 可以通过 decimal_places

    选择所需的小数字段数

    【讨论】:

    • DecimalField 只保留一个数字,而不是一个范围。这不是我想要的。
    • 对于运行验证器所需的数字范围
    • 这是关于边界,而不是验证。这不是某个范围之间的数字,而是范围本身。
    猜你喜欢
    • 2017-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-29
    • 1970-01-01
    • 2014-07-07
    • 1970-01-01
    • 2012-04-11
    相关资源
    最近更新 更多