Django DateInput默认由浏览器设置

时间:2017-09-12 22:36:54

标签: django django-forms

在我的Django项目中,我有一个常规的forms.py,对于一种形式,它指定一个特定的字段来使用DateInput小部件。

这很好用 - 当我浏览页面时,我看到一个空的日期字段,我可以点击该字段并从日历视图中选择日期。

现在,我想在他们的计算机上使用当前日期为用户自动填充该内容。所以不是服务器端的默认值,但可能是由Javascript或其他东西设置的浏览器端。

我该怎么做?

基本上这是我表单的模板:

<form action="/new_case/" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit" />

编辑:非常感谢HåkenLid帮助使用javascript。对于那些来到这里寻找这种答案的人,下面是如何将它包装在没有jQuery依赖的Django表单模板中:

<script>
document.addEventListener("DOMContentLoaded", function(event) {
var dt = new Date();
var double_digit_day = ('0' + dt.getDate()).slice(-2);
var double_digit_month = ('0' + (dt.getMonth()+1)).slice(-2);
var currentDate = dt.getFullYear() + '-' + double_digit_month + '-' + double_digit_day;
document.getElementById('id_date').value = currentDate;
});
</script>

其中'date'是表单所基于的原始模型中字段的名称。如果模型的日期字段被命名为'date',那么单个表单页面上元素的id就是'id_date'。

1 个答案:

答案 0 :(得分:0)

您可以使用javascript填充日期输入。只需在页面中添加这样的内容即可。如果存在多个日期输入,请使用查找正确输入的查询选择器。

var dateinput = document.querySelector('input[type=date]')
var dt = new Date()
var dateString = dt.getFullYear() + '-' + ('0' + (dt.getMonth() + 1)).slice(-2) + '-' + ('0' + dt.getDate()).slice(-2)
dateinput.value = dateinput.value || dateString
<form>
<input type='date' />
</form>