gpt4 book ai didi

django - 如何在 Django 表单中向时间字段添加选项?

转载 作者:行者123 更新时间:2023-12-05 01:42:43 26 4
gpt4 key购买 nike

在我的一个模型中,我有以下内容:

time = models.TimeField() 

在基于此模型的模型中,我希望 time 成为一个带有几个选项的下拉列表,所以我尝试了这个:

time = forms.TimeField(label="time", choices=[(datetime.time(0, 0), "Midnight"), (datetime.time(12, 0), "Noon")])

我收到以下错误:

TypeError: __init__() got an unexpected keyword argument 'choices'

我是否必须在我的模型的时间域中做出选择,或者有没有办法在表单中定义它?

最佳答案

型号:

import datetime as dt
begin_time = models.TimeField(default=dt.time(00, 00))

表格:

import datetime as dt
HOUR_CHOICES = [(dt.time(hour=x), '{:02d}:00'.format(x)) for x in range(0, 24)]

class MyForm(forms.ModelForm):
class Meta:
model = MyModel
fields = '__all__'
widgets = {'begin_time': forms.Select(choices=HOUR_CHOICES)}

就是这样。结果是为显示 24 小时的用户下拉(因此不会弄乱输入字段和用户输入各种愚蠢的东西),结果是直接进入数据库的 TimeField。

额外:如果不允许将模型更改为:

    begin_time = models.TimeField(null=True, blank=True)

和选择列表:

HOUR_CHOICES = [(None, '------')] + [(dt.time(hour=x), '{:02d}:00'.format(x)) for x in range(0, 24)]

关于django - 如何在 Django 表单中向时间字段添加选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51164326/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com