首页 > 解决方案 > 如何为 django forms.SplitDateTimeField 传递值?

问题描述

我正在尝试为 django 表单的SplitDateTime字段传递值。但它一直向我显示This field is required错误。

>>> from django import forms
>>> class F(forms.Form):
...     a = forms.SplitDateTimeField()
... 
>>> f = F(data={'a': ['2020-04-04', '12:12']})
>>> f.is_valid()
False
>>> f.errors
{'a': ['This field is required.']}

就像将相同的值传递给对象的clean方法一样SplitDateTime,它可以工作。

>>> b = forms.SplitDateTimeField()
>>> b.clean(['2020-04-04', '12:12'])
datetime.datetime(2020, 4, 4, 12, 12, tzinfo=<UTC>)
>>> 

有没有办法克服表单field required错误?还是我错过了什么?

标签: pythondjangopython-3.xdjango-forms

解决方案


显然,查看为该字段生成的 HTML,Django 期望每个元素分别为a_0a_1. 所以这会起作用:

>>> f = F(data={'a_0': '2020-04-04', 'a_1': '12:12'})

推荐阅读