我想了解Django的形式。
<div class="form-group">
<label for="deadline">Deadline</label>
<input
type="datetime-local"
class="form-control"
id="deadline"
aria-describedby="deadlineHelp"
placeholder="Enter when deadline"
/>
</div>我想用Django创建这个字段。但
<form action="" method="post">{% csrf_token %} {{form.as_p}}</form>来创建一个简单的行。如果我像这样修复forms.py
class Create(forms.ModelForm):
class Meta:
model = Task
fields = ('deadline_task',)
widgets = {
'deadline_task': forms.DateTimeInput(),
}不起作用。
<p><label for="id_deadline_task">Deadline task:</label> <input
type="text" name="deadline_task" id="id_deadline_task"></p>我只想要<input type="datetime-local" -选择一个日期很方便。
谢谢。
P.S. Django 1.11
发布于 2018-06-03 11:48:55
我也有同样的问题,就这样解决了:
widgets = {
'request_date': DateTimeInput(attrs={'type': 'datetime-local'}),
}发布于 2021-11-14 16:33:01
正如所指出的,the currently accepted solution显示正确的HTML5小部件,但是前端小部件返回的值不会被后端的字段验证所接受。
一个可行的解决方案是使用datetime-local小部件和自定义DateTimeField来识别日期时间格式:
from django import forms
class DateTimeLocalInput(forms.DateTimeInput):
input_type = "datetime-local"
class DateTimeLocalField(forms.DateTimeField):
# Set DATETIME_INPUT_FORMATS here because, if USE_L10N
# is True, the locale-dictated format will be applied
# instead of settings.DATETIME_INPUT_FORMATS.
# See also:
# https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats
input_formats = [
"%Y-%m-%dT%H:%M:%S",
"%Y-%m-%dT%H:%M:%S.%f",
"%Y-%m-%dT%H:%M"
]
widget = DateTimeLocalInput(format="%Y-%m-%dT%H:%M")
class Form(forms.Form):
my_datetime_field = DateTimeLocalField()https://stackoverflow.com/questions/50214773
复制相似问题