【问题标题】:Django: use get_prep_value() to remove dollar signs?Django:使用 get_prep_value() 删除美元符号?
【发布时间】:2025-12-07 01:00:02
【问题描述】:

是否建议在我的 Django Field 子类中使用 get_prep_value() 来执行此操作(我的自定义字段是 DecimalField 的子类):

def get_prep_value(self, value):
    from decimal import Decimal
    value = Decimal(value.replace('$', ''))
    return super(MyCustomField, self).get_prep_value()

这会对 django 的 ModelForm 验证造成问题吗(即,ModelForm 的验证会看到小数字段子类并且不允许 $ 到达模型层吗?我应该制作一个自定义表单字段并将其设置为默认值吗?模型字段?还有其他问题吗?

【问题讨论】:

    标签: django django-models


    【解决方案1】:

    您应该在表单字段中执行此操作,因为这是一个只会在表单输入时发生的问题。

    【讨论】: