コード例 #1
0
    def list_view(self, request, *args, **kwargs):

        if request.method == 'POST':
            action_name = request.POST.get('actions')
            action_dict = self.get_action_dict()
            if action_name not in action_dict:
                return HttpResponse('非法请求')

            response = getattr(self, action_name)(request)
            if response:
                return response

        # 处理搜索
        search_list, keyword, con = self.search_condition(request)

        # ##### 处理分页 #####
        from stark.utils.page import Pagination
        # 获取数据
        origin_queryset = self.get_queryset(request, *args, **kwargs)
        queryset = origin_queryset.filter(con).filter(
            **self.get_list_filter_condition(request)).order_by(
                *self.get_order_by()).distinct()
        # 全部数据
        total_set = queryset.count()

        # 携带参数
        query_params = request.GET.copy()
        query_params._mutable = True
        # 请求的URL
        base_url = self.request.path
        page = Pagination(total_set,
                          request.GET.get('page'),
                          query_params,
                          base_url,
                          per_page=20)
        # 获取组合搜索筛选
        list_filter = self.get_list_filter()
        try:
            # 搜索条件无法匹配到数据时可能会出现异常
            queryset = queryset[page.start:page.end]
        except Exception as e:
            print(e)
            queryset = []
        cl = ChangeList(self, queryset, keyword, search_list, page.page_html(),
                        *args, **kwargs)

        context = {'cl': cl, 'extra': self.get_extra_content(*args, **kwargs)}
        return render(
            request, self.change_list_template or 'stark/new_change_list.html',
            context)
コード例 #2
0
ファイル: stark.py プロジェクト: cs4224485/crmv2
    def list_view(self, request, *args, **kwargs):
        if request.method == 'POST':
            action_name = request.POST.get('actions')
            action_dict = self.get_action_dict()
            if action_name not in action_dict:
                return HttpResponse('非法请求')

            response = getattr(self, action_name)(request)
            if response:
                return response

        # 处理搜索
        search_list, keyword, con = self.search_condition(request)

        # ##### 处理分页 #####
        from stark.utils.page import Pagination
        # 全部数据
        total_set = self.model_class.objects.filter(con).count()

        # 携带参数
        query_params = request.GET.copy()
        query_params._mutable = True
        # 请求的URL
        base_url = self.request.path
        page = Pagination(total_set,
                          request.GET.get('page'),
                          query_params,
                          base_url,
                          per_page=10,
                          max_show=3)
        # 获取组合搜索筛选
        list_filter = self.get_list_filter()

        # 搜索条件无法匹配到数据时可能会出现异常
        origin_queryset = self.get_queryset(request, *args, **kwargs)

        queryset = origin_queryset.filter(con).filter(
            **self.get_list_filter_condition())
        if queryset:
            queryset = queryset.order_by(
                *self.get_order_by()).distinct()[page.start:page.end]

        cl = ChangeList(self, queryset, keyword, search_list, page.page_html(),
                        *args, **kwargs)

        context = {'cl': cl, 'args': args, 'kwargs': kwargs}
        return render(request, self.change_list_template
                      or 'stark/changelist.html', context)