【问题标题】:How to create a form with a datefield using a python dictionary如何使用 python 字典创建带有日期字段的表单
【发布时间】:2014-04-16 00:18:33
【问题描述】:

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

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

【问题讨论】:

    标签: python forms dictionary django-1.6


    【解决方案1】:

    first_date 值中传递datetime.date

    form = TestForm("name": "John", 
                    "first_date": datetime.date(year=2005, month=1, day=23)})
    

    或者,如果您有日期字符串,请使用 strprime() 将其转换为 datetime

    form = TestForm("name": "John", 
                    "first_date": datetime.datetime.strptime('2005-01-23', '%Y-%m-%d')})
    

    别忘了import datetime

    希望对您有所帮助。

    【讨论】:

    • 正是我想要的。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-01
    • 2021-06-16
    • 2018-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-08
    相关资源
    最近更新 更多