【发布时间】:2015-06-07 18:55:27
【问题描述】:
在 Django 1.8 中使用新的 DurationField 的困难
我在使用 Django 的新模型 DurationField 时遇到了一些问题。
我希望用户能够选择我的 web 应用上的事件持续时间是 1 天、3 天还是 5 天,默认选择是 3 天。
在我的模型的开头,我声明了选择:
SHORT = datetime.timedelta(days=1)
MEDIUM = datetime.timedelta(days=3)
LONG = datetime.timedelta(days=5)
DURATION_CHOICES = ((SHORT, '1 day'),(MEDIUM, '3 days'), (LONG, '5 days'),)
然后,我在下面声明 DurationField:
duration = models.DurationField(choices = DURATION_CHOICES, default = MEDIUM)
我为模型创建了一个 ModelForm,并在适当的模板上渲染它。在表单上,“3 天”是下拉菜单中的预选选项,“1 天”和“5 天”也是选项。但是,当我提交表单时,我收到表单验证错误“选择一个有效的选择。3 天,0:00:00 不是可用的选择之一。”
但是,当我从 DurationField 中删除选项并保留默认值时:
duration = models.DurationField(default = MEDIUM)
我可以毫无问题地提交。我在这里做错了什么?
【问题讨论】:
标签: python django django-forms django-1.8