如何在datefield上显示datepicker日历

时间:2013-05-03 10:00:22

标签: django django-models

这是关于如何在django支持的站点中使用jQuery date picker

models.py

from django.db import models
class holidaytime(models.Model):
    holiday_date = models.DateField()

我正在使用jquery datepicker

我正在使用model form并创建text field以成功显示日期。

但未能显示日期选择图标。我正在使用Django模型表单。

2 个答案:

答案 0 :(得分:37)

您可以使用widgetclass传递给表单,当它将在html中呈现时。然后class会读取javascript以呈现datepicker功能。

以下是一个例子:

from django import forms
class HolidayTimeForm(forms.Form):
    holiday_date = forms.DateField(widget=forms.TextInput(attrs=
                                {
                                    'class':'datepicker'
                                }))

...或使用ModelForm时通过Meta类中的widgets属性:

class HolidayTimeForm(forms.ModelForm):

    class Meta:
        model = Holiday
        widgets = {
            'holiday_date': forms.DateInput(attrs={'class':'datepicker'}),
        }

现在在模板中:

 /* Include the jquery Ui here */
 <script>
  $(function() {
    $( ".datepicker" ).datepicker({
      changeMonth: true,
      changeYear: true,
      yearRange: "1900:2012",
      // You can put more options here.

    });
  });
  </script>

答案 1 :(得分:9)

您可以使用Bootstrap-datetimepicker(而非datepicker),这是一个示例:

  1. 添加必要的脚本&amp;将文件存入您的模板:
  2. &#13;
    &#13;
    <link href="//cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
    <link href="//cdn.bootcss.com/bootstrap-datetimepicker/4.17.44/css/bootstrap-datetimepicker.min.css" rel="stylesheet">
    <script src="//cdn.bootcss.com/jquery/3.0.0/jquery.min.js"></script>
    <script src="//cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <script src="//cdn.bootcss.com/moment.js/2.17.1/moment.min.js"></script>
    <script src="//cdn.bootcss.com/bootstrap-datetimepicker/4.17.44/js/bootstrap-datetimepicker.min.js"></script>
    &#13;
    &#13;
    &#13;

    1. 使用小部件将class / id添加到日期时间字段:

      class MyTaskForm(forms.ModelForm):
      class Meta:
         model = MyTask
      fields = ['completeDateTime']
      widgets = {
          'completeDateTime': forms.DateTimeInput(attrs={'class': 'datetime-input'})
      }
      
    2. 将脚本添加到模板/ html文件中:(注意格式,导入使用相同格式的Django)

    3. &#13;
      &#13;
      <script>
          $(function () {
              $('.datetime-input').datetimepicker({
                  format:'YYYY-MM-DD HH:mm:ss'
              });
          });
      </script>
      &#13;
      &#13;
      &#13;