Django:验证前处理表单字段

2024-09-23 06:22:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个具有以下日期时间字段的表单:

Forms.py

class FormBacktest(forms.Form):
    dateStart = forms.DateTimeField(label="Date Start")

    def to_python(self, dateStart):
        return serialize_datetime(dateStart)

当用户提交表单时,dateStart是一个具有以下值的字符串:12 January, 2020。我想在验证之前序列化后端端的字段以获得datetime.datetime(2020, 01, 12, 0, 0, 0, 0)。为此,我在文档中发现方法save_<Field>不起作用,因为它是在all_clean_data之后执行的

我也可以使用to_python方法,但它并不完全是我想要的:

This method accepts the raw value from the widget and returns the converted value.

即使如此,我也尝试过使用它,但从未调用过该函数。我的观点是这样的:

视图.py

def view(request):
    if request.method == "POST":
       backtestForm = FormBacktest(request.POST)
       if backtestForm.is_valid():
            # blabla

验证前处理数据的最佳策略是什么


Tags: theto方法py表单datetimeifvalue