views.py 文件源码

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

项目:micromasters 作者: mitodl 项目源码 文件源码
def get_queryset(self):
        """
        Gets queryset for ListView to return to view
        """
        # Filter by program (self.program set in test_func())
        financial_aids = FinancialAid.objects.filter(
            tier_program__program=self.program
        )

        # Filter by status
        self.selected_status = self.kwargs.get("status", None)
        if self.selected_status is None or self.selected_status not in FinancialAidStatus.ALL_STATUSES:
            self.selected_status = self.default_status
        financial_aids = financial_aids.filter(status=self.selected_status)

        # Filter by search query
        self.search_query = self.request.GET.get("search_query", "")
        search_query = reduce(
            lambda q, term: (
                q |
                Q(user__profile__first_name__icontains=term) |
                Q(user__profile__last_name__icontains=term)
            ),
            self.search_query.split(),
            Q()
        )
        if search_query:
            financial_aids = financial_aids.filter(search_query)

        # Annotate with adjusted cost
        self.course_price = self.program.price
        financial_aids = financial_aids.annotate(adjusted_cost=self.course_price - F("tier_program__discount_amount"))

        # Sort by field
        self.sort_field = self.request.GET.get("sort_by", self.default_sort_field)
        if self.sort_field.startswith("-"):
            self.sort_field = self.sort_field[1:]
            # Defined above: self.sort_direction = ""
            self.sort_direction = "-"
        if self.sort_field not in self.sort_fields:
            self.sort_field = self.default_sort_field
            self.sort_direction = ""
        financial_aids = financial_aids.order_by(
            "{sort_direction}{sort_field}".format(
                sort_direction=self.sort_direction,
                sort_field=self.sort_field_mappings.get(self.sort_field, self.sort_field)
            )
        )

        return financial_aids
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号