我知道如何使用models.py在forms.py和views.py中创建表单,但想要创建一个birthdate字段。众所周知,我们可以做到birthdate = models.DateTimeField()
。但是,问题是用户必须输入YYYY-MM-DD-HH-MM-SS
来输入他们的生日。
那么这里的任何人都有优雅的方式让用户输入他们的生日吗?
由于
答案 0 :(得分:3)
我相信你正在寻找一个更好的DateTimeWidget,而不是字段本身。其次,除非它真的必要,否则你更有可能使用DateField而不是DateTimeField来记录用户的生日;)
这里只是自定义日期时间输入窗口小部件的一个示例,但还有更多:
https://github.com/asaglimbeni/django-datetime-widget
在表格中,你会这样做:
birthdate = forms.DateTimeField(widget= ...)
欢呼声
答案 1 :(得分:2)
如果需要,您可以使用models.DateField和自定义DATE_INPUT_FORMATS:
https://docs.djangoproject.com/en/dev/ref/settings/#date-input-formats
答案 2 :(得分:2)
当然。将日期选择器绑定到生日输入。
请参阅jQuery UI的datepicker小部件。
方法是:
<强>更新强>
示例:强>
在你的模板中:
<form action=".">
...
{{ form.birthdate }}
...
</form>
<script>
$(function() {
$( "#id_birthdate" ).datepicker({
changeYear: true,
changeMonth: true,
});
});
</script>
id
输入的birthdate
肯定会是id_birthdate
,因为这就是Django将id
分配给字段的方式,这就是你需要的传递脚本的功能。
另外,在项目中加入jqueryui.js
。