1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| class remark_time_filter(admin.SimpleListFilter): title = '根据时间段搜索用户评论' parameter_name = 'reward_time'
def lookups(self, request, model_admin): """制定搜索项""" return [ ('30_minutes', _('三十分钟内')), ('half_day', _('半天内')), ('1_hour', _('一小时内')), ('1_day', _('一天内')), ('7_day', _('一周内')), ('30_day', _('一个月内')), ]
def queryset(self, request, queryset): if self.value() == '30_minutes': return queryset.filter(reward_time__gte=datetime.now() - timedelta(minutes=30), reward_time__lte=datetime.now()) elif self.value() == '1_hour': return queryset.filter(reward_time__gte=datetime.now() - timedelta(hours=1), reward_time__lte=datetime.now()) elif self.value() == 'half_day': return queryset.filter(reward_time__gte=datetime.now() - timedelta(hours=12), reward_time__lte=datetime.now()) elif self.value() == '1_day': return queryset.filter(reward_time__gte=datetime.now() - timedelta(days=1), reward_time__lte=datetime.now()) elif self.value() == '7_day': return queryset.filter(reward_time__gte=datetime.now() - timedelta(days=7), reward_time__lte=datetime.now()) elif self.value() == '30_day': return queryset.filter(reward_time__gte=datetime.now() - timedelta(days=30), reward_time__lte=datetime.now()) else: return queryset
|