请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

datetime类型无法在xadmin中设置list_editbale后修改

图片描述


这里有点体会,xadmin中可以对同一个model表格,使用***Admin的queryset()方法实现删选。这个功能老师讲课时说了可以在queryset的filter中设置自己的删选逻辑,这里正好我用上:要把近30天需要校验的设备单独列出来qs = qs.filter(next_cal_date__lte=datetime.now() + cal_interval)。 这个功能真是好。

class Plan2CaliEquipmentAdmin(object):
    list_display = ['item', 'name', 'desc', 'detail','is_banner', 'sn', 'asset_num', 'type', 'team', 'responsible_person', 'fav_nums',
                    'click_nums', 'reserve_times', 'tag', 'image', 'cal_date', 'next_cal_date', 'manufacturer', 'location', 'status', 'add_time',
                    'get_resource_nums', 'go_to']
    search_fields = ['item', 'name', 'desc', 'detail','is_banner', 'sn', 'asset_num', 'type', 'team', 'responsible_person', 'fav_nums',
                     'click_nums', 'reserve_times', 'tag', 'image', 'cal_date', 'next_cal_date', 'manufacturer', 'location', 'status',
                     'get_resource_nums', 'go_to']
    list_filter = ['item', 'name', 'desc', 'detail', 'is_banner', 'sn', 'asset_num', 'type', 'team', 'responsible_person', 'fav_nums',
                    'click_nums', 'reserve_times', 'tag', 'image', 'cal_date', 'next_cal_date', 'manufacturer', 'location', 'status', 'add_time',
                    ]    # get_resource_nums不能写在这里
    ordering = ['-click_nums'] #进入xadmin后默认以点击数排序
    readonly_fields = ['click_nums', 'fav_nums', 'reserve_times']
    # exclude = ['fav_nums'] #这个字段不显示在 点击这个设备后的页面中 exclude、readonly_fields互相矛盾的
    list_editable = ['cal_date', 'next_cal_date']
    inlines = [EquipmentResourceInline, EquipmentVideoInline]
    # refresh_times = [3, 5]

    def queryset(self):
        qs = super(Plan2CaliEquipmentAdmin, self).queryset()
        cal_interval = timedelta(days=30)
        qs = qs.filter(next_cal_date__lte=datetime.now() + cal_interval)
        return qs

正在回答 回答被采纳积分+3

1回答

bobby 2019-05-10 11:37:37

你这里修改后 通过f12 看看网络请求有没有问题?

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信