如何使用python字典创建带有日期字段的表单

时间:2014-04-16 00:18:33

标签: python forms dictionary django-1.6

我在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

如何格式化日期字段以避免此错误?

1 个答案:

答案 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

希望有所帮助。