views.py 文件源码

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

项目:portailva 作者: BdEINSALyon 项目源码 文件源码
def get_queryset(self):
        queryset = Event.objects.get_online()
        since = self.request.query_params.get('since', None)
        until = self.request.query_params.get('until', None)

        if since is None and until is None:
            # We return event for the next two days
            since = datetime.datetime.now().strftime('%Y-%m-%d')
            until = (datetime.datetime.now() + datetime.timedelta(days=7)).strftime('%Y-%m-%d')

        if since is not None and until is None:
            try:
                since_date = datetime.datetime.strptime(since, '%Y-%m-%d')
                queryset = queryset.filter(
                    (Q(begins_at__lte=since_date) & Q(begins_at__gte=since_date)) |
                    (Q(begins_at__gte=since_date))
                )
            except ValueError:
                raise ParseError("Bad format for since parameter. Accepted format : %Y-%m-%d.")
        elif since is None and until is not None:
            try:
                until_date = datetime.datetime.strptime(until, '%Y-%m-%d')
                queryset = queryset.filter(
                    (Q(begins_at__lte=until_date) & Q(ends_at__gte=until_date)) |
                    (Q(ends_at__lte=until_date))
                )
            except ValueError:
                raise ParseError("Bad format for until parameter. Accepted format : %Y-%m-%d.")
        else:
            try:
                since_date = datetime.datetime.strptime(since, '%Y-%m-%d')
                until_date = datetime.datetime.strptime(until, '%Y-%m-%d')
                queryset = queryset.filter(
                    (Q(begins_at__gte=since_date) & Q(begins_at__lte=until_date)) |
                    (Q(ends_at__gte=since_date) & Q(ends_at__lte=until_date)) |
                    (Q(begins_at__lte=since_date) & Q(ends_at__gte=until_date))
                )
            except ValueError:
                raise ParseError("Bad format for since/until parameters. Accepted format : %Y-%m-%d.")
        return queryset
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号