A.J*_*.J. 4 forms django modelform
我有一个独特的问题.我在我的floatField中输入"$ 90"值.我认为它应该被清理并存储为模型中的"90.0".
但是当我输入"$ 90"并调用clean_filed方法时,它不会调用那个干净的方法.但是当我在干净的(自我)方法上应用断点并尝试获得它的价值时,它说没有.
请帮帮我.这是我的代码.
Model
class Project(models.Model):
foo = models.FloatField("foo",
null=True, blank=True
)
forms
widgets = {
'foo': forms.TextInput(attrs={'currency': 'true'})}
def clean_foo(self):
value = self.cleaned_data.get('foo')
print value # i get NONE here.............
return value
Run Code Online (Sandbox Code Playgroud)
Mar*_*vin 15
clean_<field>表单API中的钩子用于执行其他验证.它在字段调用其clean方法后调用.如果字段不认为输入有效,clean_<field>则不调用.这在自定义验证文档中有说明https://docs.djangoproject.com/en/stable/ref/forms/validation/
对于任何字段,如果Field.clean()方法引发ValidationError,则不会调用任何特定于字段的清理方法.但是,仍会执行所有剩余字段的清理方法.
在你的情况下,因为$90没有验证为浮点数,它将不会被调用.相反,你应该做的是创建一个子类,在FloatField将输入$验证为float之前清除输入(删除等).
| 归档时间: |
|
| 查看次数: |
3547 次 |
| 最近记录: |