在 Django 1.8 中使用新的 DurationField 的困难
我在使用 Django 的新DurationField模型时遇到了一些麻烦。
我希望用户能够选择我的 webapp 上的事件持续时间是 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)
我可以毫无问题地提交。我在这里做错了什么?