如何防止Django接受无效日期并转换它们?

时间:2011-10-07 12:11:57

标签: django forms date

我有以下表格:

class GuaranteesForm(forms.ModelForm):
    birth_date = forms.DateField(input_formats=['%d/%m/%Y'], required=True)

但是,如果用户插入无效日期,例如:13/13/1999而不是引发异常,则Django会通过执行日期和月份字段的模数来转换日期,并按比例添加月份和年份。在该示例中,由于月份大于12,因此将持续存在的日期将是1999年1月13日。

我宁愿得到一个InvalidFormException,有什么方法可以防止这种行为吗?

我在Jython(DOJ)上使用Django。

我已经通过clean_birth_date实现了一个解决方案,但我觉得它相当难看。我正在寻找的是一种通常日期来防止这种行为的方法。

1 个答案:

答案 0 :(得分:1)

您可以在cleaning a specific form field时手动启动异常。