【发布时间】:2016-10-23 19:27:51
【问题描述】:
我想在ModelForm中调用save()函数之前,根据max_digits和decimal_places属性自动对Django的DecimalField进行四舍五入。
目前正在使用以下:
- django 1.8
- python 2.7
到目前为止我已经尝试过什么。
https://djangosnippets.org/snippets/10554/
models.py
amount = models.DecimalField(max_digits = 19, decimal_places = 2)
views.py
附:将它应用到不同的领域和不同的模型中
data = {"amount" : 100.1234,"name":"John Doe",...}
form = My_form(data)
if form.is_valid(): //the error throws from here.
form.save()
else:
raise ValueError(form.errors)
forms.py
我计划清理 clean() 函数中的字段并对所有小数字段进行四舍五入,但是当我尝试打印 raw_data 时,没有“金额字段”。
class My_form(forms.ModelForm):
Class Meta:
model = My_model
fields = ('amount','name')
def clean(self):
raw_data = self.cleaned_data
print(raw_data) //only prints {'name' : 'John Doe'}
【问题讨论】: