扩展Django admin的list_filter()可使用范围

当需要对非Field数据进行筛选时,Django admin的list_filter报错。可以通过扩展field或者自定义筛选方法来解决。最简单的方法是将字段记录到model的field中,但也可以选择更高级的方法,覆盖Django的默认筛选实现,参考Stack Overflow的相关解答,成功添加自定义过滤器到list_filter。
摘要由CSDN通过智能技术生成

需求描述

有时候我们会基于已有数据生成一列在表格中,类似于下面的

class BaseSchema(models.Model):
    ...
    def test_status(self):
        # pdb.set_trace()
        if datetime.date.today() < self.test_start_date:
            return '未到测试区间'
        elif self.test_end_date and datetime.date.today() > self.test_end_date:
            return format_html('<p style="color: red">已下线</p>')
        else:
            return format_html('<p style="color: green">进行中</p>')

    test_status.short_description = u'测试状态
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值