我在Django 1.6中有以下表格:
class TestForm(forms.form):
first_date = forms.DateField(widget=SelectDateWidget(), required=True)
name = forms.CharField(widget=forms.PasswordInput(), label="Real Name")
我想在我的视图中使用字典创建此表单的实例(忍受我,我必须在这里使用python字典)。
阅读文档我发现了一个没有DateField的示例并对其进行了测试:
form = TestFormNoDateField({"username": "John", "hair_color": "Black")
这就像一个魅力。问题是当我使用带有DateField的表单尝试相同的方法时:
form = TestForm("name": "John", "first_date": "2005-01-23")
这会引发Value Error at xxx: Too many values to unpack
。
如何格式化日期字段以避免此错误?
答案 0 :(得分:2)
在datetime.date
值中传递first_date
:
form = TestForm("name": "John",
"first_date": datetime.date(year=2005, month=1, day=23)})
或者,如果您有日期字符串,请使用datetime
将其转换为strprime()
:
form = TestForm("name": "John",
"first_date": datetime.datetime.strptime('2005-01-23', '%Y-%m-%d')})
不要忘记import datetime
。
希望有所帮助。