我有一个项目有许多DecimalFields,它们在300多个模板中呈现。我希望这些十进制字段被规范化。我不在乎沉淀什么的:
decimal.Decimal("10.0000").normalize()
我还没有找到改变默认渲染系统的方法。我知道我可以在模板中使用一个人性化的floatformat过滤器。但我需要的解决方案并不意味着编辑所有这些文件,即使可以编写shell脚本。
谢谢
最佳答案
您可以创建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
编辑:我现在累得说不出话来。
关于python - 重新定义Django模板中的默认过滤行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4119151/