我喜欢Thauber Schedule datepicker,但它是一个日期时间选择器,我不能只做日期.任何有关如何与Django日期表单字段集成的说明的漂亮日期选择器的建议?
以下是我的工作,完全没有外部依赖:
models.py:
from django.db import models class Promise(models): title = models.CharField(max_length=300) description = models.TextField(blank=True) made_on = models.DateField()
forms.py:
from django import forms from django.forms import ModelForm from .models import Promise class DateInput(forms.DateInput): input_type = 'date' class PromiseForm(ModelForm): class Meta: model = Promise fields = ['title', 'description', 'made_on'] widgets = { 'made_on': DateInput(), }
我的看法:
class PromiseCreateView(CreateView): model = Promise form_class = PromiseForm
我的模板:
日期选择器如下所示:
您也可以在模板中使用Jquery.jquery DateTime Picker允许每个自定义.
http://jqueryui.com/demos/datepicker/
Django的TextInput小部件(及其所有子类)支持指定type属性来设置表单类型.
您可以使用它将输入类型设置为date
(W3C规范),例如以下列方式:
date = fields.DateField(widget=forms.widgets.DateInput(attrs={'type': 'date'}))
说到日期选择器,我的选择是Bootstrap Datepicker.您可以使用django-bootstrap-datepicker-plus在django应用程序中实现它,它适用于较新和较旧的DJango版本.我维护存储库并测试了它在Django版本工作1.8,1.10,1.11和2.0.4.
设置非常简单.你只需安装它.
pip install django-bootstrap-datepicker-plus
在forms.py文件中导入小部件
from bootstrap_datepicker_plus import DatePickerInput
将小部件添加到日期字段
class ToDoForm(forms.Form): date = forms.DateField( widget=DatePickerInput( options={ "format": "mm/dd/yyyy", "autoclose": True } ) )
有关详细说明,请参见django-bootstrap-datepicker-plus Github Page.
免责声明:此小部件包现在由我拥有和维护.对于任何问题,请随时在Github页面上打开问题.