提问人:usama hussain 提问时间:6/18/2023 最后编辑:usama hussain 更新时间:6/18/2023 访问量:41
如何让用户在表单中选择日期和时间?
How to let user pick date AND time in the form?
问:
我正在尝试创建一种待办事项列表。大部分工作已经完成。我可以让用户输入任务及其详细信息,并选择开始和结束日期。
但是,由于我在表单中呈现字段,因此我希望用户能够轻松方便地输入日期和时间。为此,我添加了一个日期选择器类型的小部件。存储在数据库中的日期时间仍为 ISO 格式。
现在,问题是用户可以完全选择或输入日期。但它不允许用户输入时间。选择日期后,用户无法输入时间。
代码如下:
class TaskForm(ModelForm):
class Meta:
model = TaskModel
exclude = ["completed"]
widgets = {
'title': TextInput(attrs={"class": "form-control"} ),
'detail': Textarea(attrs={"class": "form-control"}),
'start_time': DateInput(format = ['%d/%m/%Y %H:%M'], attrs={"type":"date", 'class': 'form-control datetimepicker-input', 'data-target': '#datetimepicker1'}),
'end_time': DateInput(format = ['%d/%m/%Y %H:%M'], attrs={"type": "date", 'class': 'form-control datetimepicker-input'})
}
Model.py 文件是:
class TaskModel(models.Model):
title = models.CharField(max_length=30)
detail = models.TextField(blank=True)
start_time = models.DateTimeField()
end_time = models.DateTimeField()
completed = models.BooleanField(blank = True, null=True)
其余的代码只是简单而传统的基于 Django 的视图和模板(如果您也需要,请告诉我)。
答:
0赞
weAreStarsDust
6/18/2023
#1
你可以从 django admin 尝试AdminSplitDateTime
from django import forms
from django.forms import ModelForm
from django.contrib.admin import widgets
class TaskForm(ModelForm):
class Meta:
model = TaskModel
exclude = ["completed"]
widgets = {
'title': forms.TextInput(attrs={"class": "form-control"}),
'detail': forms.Textarea(attrs={"class": "form-control"}),
'start_time': widgets.AdminSplitDateTime(attrs={"class": "form-control"}),
'end_time': widgets.AdminSplitDateTime(attrs={"class": "form-control"})
}
评论
0赞
usama hussain
6/22/2023
谢谢你的回答。但是,它对我不起作用。实际上,我遇到了这个令人难以置信的 github 存储库,它可以帮助我通过非常小的自定义来完成我的确切任务。github.com/monim67/django-flatpickr我能够使用这个 repo 实现我想要的东西。
评论