在django admin里使用jQuery的datetimepicker

django admin是一个很好的数据录入类的后台管理框架,但日期时间的输入插件并不理想。截至django v2.2,默认的插件是这样的:

日期和时间分开,且时间只能选取有限的几个关键时刻,显然不是很好用。

网上有些人试图把jQuery里的datetimepicker集成进django,但做的不太干净,有许多坑需要很多注意避免。这里总结一下:

安装

在自己的django目录里直接拷贝:

git clone https://github.com/escodebar/django-datetimepicker.git

配置

在settings.py里的INSTALLED_APPS里加入‘datetimepicker’

使用方法

为你的Admin类重写一个Form类:

from django import forms
from datetimepicker.widgets import DateTimePicker

class MyModelAdminForm(forms.ModelForm):
    some_datetime_field = forms.DateTimeField(
        widget=DateTimePicker(
            format_string = '%Y-%m-%d %H:%M',
        ),
    )

你会发现不能工作,有很多报错。这是由于django 2.2引入了一些不兼容的代码。需要对datetimepicker的源码做两处修改。首先修改widget.py文件,加入一个新的参数renderer,一定要给一个默认值None,其次把_format_value改为format_value(去掉开头的下划线):

    def render(self, name, value, attrs=None, renderer=None, prefix='datet
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值