我有一个包含许多DecimalFields的项目,这些项目在300多个模板中呈现。我希望这些十进制字段呈现标准化。我不关心精确或任何事情:
decimal.Decimal("10.0000").normalize()
我还没有找到改变默认渲染系统的方法。我知道我可以在我的模板中使用一个humanize和一个floatformat过滤器。但我需要一个解决方案,这并不意味着编辑所有这些文件,即使可以编写shell脚本。
由于
答案 0 :(得分:2)
您可以创建DecimalField
的子类,覆盖DecimalField.__str__
或DecimalField.__unicode__
以满足您的需求。只要需要在模板或诸如此类中呈现值,就会调用此方法。您只需要更改模型。
Field
类的代码为here。 DecimalField
是此类的子类。有关子类化Field
的文档:http://docs.djangoproject.com/en/dev/howto/custom-model-fields/#writing-a-field-subclass
此外,请参阅此提示,使用__unicode__
方法:http://docs.djangoproject.com/en/dev/howto/custom-model-fields/#some-general-advice
编辑:我现在感到很累,没有任何意义。