我有一个项目有许多DecimalFields,它们在300多个模板中呈现。我希望这些十进制字段被规范化。我不在乎沉淀什么的:

decimal.Decimal("10.0000").normalize()

我还没有找到改变默认渲染系统的方法。我知道我可以在模板中使用一个人性化的floatformat过滤器。但我需要的解决方案并不意味着编辑所有这些文件,即使可以编写shell脚本。
谢谢

最佳答案

您可以创建DecimalField的子类,在其中重写DecimalField.__str__DecimalField.__unicode__以满足您的需要。每当值需要在模板中呈现或不需要呈现时,都会调用此方法。你只需要改变你的模型。
Field类的代码是hereDecimalField是它的一个子类。关于子类化的文档Fieldhttp://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/

10-11 04:51