views.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:Server 作者: malaonline 项目源码 文件源码
def get_queryset(self):
        only_valid = self.request.query_params.get('only_valid', '')
        only_valid = only_valid == 'true'
        user = self.request.user
        try:
            queryset = user.parent.coupon_set.all()
        except exceptions.ObjectDoesNotExist:
            raise PermissionDenied(detail='Role incorrect')

        now = timezone.now()
        out_time = models.Coupon.OUT_OF_DATE_TIME
        if only_valid:
            # ??????????
            # ????, ????? => ?????, ???????????
            queryset = queryset.filter(
                expired_at__gt=now,
                used=False,
            ).order_by('-amount', 'expired_at')
        else:
            # ??????????, ???????
            # ????, ????? => ?????
            queryset = queryset.filter(
                expired_at__gt=now - out_time,
            ).extra(
                # ???????????????
                select={'date_diff': 'abs(extract(epoch from (now()-expired_at)))'}
            ).order_by('date_diff', '-amount')

        # ???????
        if self.action == 'list':
            return sorted(queryset, key=lambda x: x.sort_key())

        return queryset
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号