Django表单:将forms.CharField的值获取为日期

1 投票
2 回答
1281 浏览
提问于 2025-04-17 16:33

我有一个表单,里面有一个输入框,用来填写欧洲格式的日期。

我需要把这个日期转换成Python可以识别的日期对象。

有没有办法让表单在验证的时候自己处理这个转换呢?比如说用什么回调函数?

我不想在处理表单的视图里去做这个转换。

2 个回答

1

那为什么不直接用 DateField 呢?

2

这就是 clean_FOO 这个钩子的作用,它用来填充 cleaned_data 这个字典。

class MyFrom(..):
    field = forms....

    def clean_field(self):
        data = self.cleaned_data.get('field')
        try:
            return datetime.datetime.strptime(data)
        except Exception:
             raise forms.ValidationError("That ain't no time!")

撰写回答