如何在Django admin-interface中使用Jquery Datepicker?

时间:2015-04-26 13:42:41

标签: jquery python django jquery-ui-datepicker

我想通过在右侧边栏添加Jquery UI -Jquery Datepicker来自定义我的管理站点,或者在单击输入框时显示日历。

日历用于挑选过滤我需要的数据的日子。任何帮助或想法将不胜感激。

admin.py

class DecadeBornListFilter(admin.SimpleListFilter):
    title = _('Years')
    parameter_name = 'decade'

    def lookups(self, request, model_admin):
        return (
            ('2015', _('2015')),
        ('2014', _('2014')),
            ('2013', _('2013')),
        )


    def queryset(self, request, queryset):
        if self.value() == '2015':
                    return queryset.filter(pub_date__gte=date(2015, 1, 1),pub_date__lte=date(2015, 12, 31))
        if self.value() == '2013':
                    return queryset.filter(pub_date__gte=date(2013, 1, 1),pub_date__lte=date(2013, 12, 31))
        if self.value() == '2014':
                    return queryset.filter(pub_date__gte=date(2014, 1, 1),pub_date__lte=date(2014, 12, 31))


class WaterMapAdmin(admin.ModelAdmin):
    list_display=('pub_date','status','position','na','mei')
    list_filter=('pub_date',DecadeBornListFilter)

    search_fields = ['status']


admin.site.register(WaterMap,WaterMapAdmin)

models.py

class WaterMap(models.Model):
    pub_date = models.DateTimeField('发布日期')
    status=models.CharField('状态',max_length=10)
    position=models.IntegerField('位置')
    na=models.FloatField('纳',default=0.00)
    mei=models.FloatField('镁',default=0.00)
    def __unicode__(self):
        return str(self.pub_date)[:10]

1 个答案:

答案 0 :(得分:0)

当您使用Django在模板上实现表单时,它是这样的:

{% for field in form.fields %}
  <div>
   {{field}
  </div>
{% endfor %}

要使用Datepicker,您需要在输入中输入一个id:

<input id="datepicker" ...>

所以你可以在form.py中写这个:

status= forms.CharField('状态', max_length=10, widget=forms.TextInput(attrs={'id':'id for datepicker'}))