首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django表单中的type="datetime-local“

Django表单中的type="datetime-local“
EN

Stack Overflow用户
提问于 2018-05-07 12:55:24
回答 2查看 4.9K关注 0票数 1

我想了解Django的形式。

代码语言:javascript
复制
<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创建这个字段。但

代码语言:javascript
复制
<form action="" method="post">{% csrf_token %} {{form.as_p}}</form>

来创建一个简单的行。如果我像这样修复forms.py

代码语言:javascript
复制
class Create(forms.ModelForm):
    class Meta:
        model = Task
        fields = ('deadline_task',)
        widgets = {
           'deadline_task': forms.DateTimeInput(),
        }

不起作用。

代码语言:javascript
复制
<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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-03 11:48:55

我也有同样的问题,就这样解决了:

代码语言:javascript
复制
widgets = {
    'request_date': DateTimeInput(attrs={'type': 'datetime-local'}),
}
票数 6
EN

Stack Overflow用户

发布于 2021-11-14 16:33:01

正如所指出的,the currently accepted solution显示正确的HTML5小部件,但是前端小部件返回的值不会被后端的字段验证所接受。

一个可行的解决方案是使用datetime-local小部件和自定义DateTimeField来识别日期时间格式:

代码语言:javascript
复制
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()
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50214773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档