def pagination(self): # pagination self.page = int(get_or_default('page', self.params, self.page)) self.per_page = int( get_or_default('per_page', self.params, self.per_page)) return self.objects.paginate(page=self.page, per_page=self.per_page, error_out=False).items
def filter(self): if self.errors: return None # default value self.search_list = get_or_default('search_list', self.params, self.search_list) conds_or = [] conds_and = [] # FILTER by deleted_at if 'delete_status' in self.params: if self.params['delete_status'] == 1: conds_and = [Variant.del_status == True] # FILTER by keyword if 'keyword' in self.params: keyword = self.params['keyword'] if 'name' in self.search_list: conds_or.append(Variant.name.like('%{}%'.format(keyword))) if 'color' in self.search_list: conds_or.append(Variant.color.like('%{}%'.format(keyword))) if 'size' in self.search_list: conds_or.append(Variant.size.like('%{}%'.format(keyword))) # FILTER and_ & or_ if len(conds_or) >= 1: self.objects = Variant.query.filter(and_(*conds_and), or_(*conds_or)) else: self.objects = Variant.query.filter(and_(*conds_and)) return self.objects
def filter(self): if self.errors: return None # default value self.search_list = get_or_default('search_list', self.params, self.search_list) conds_or = [] conds_and = [] # FILTER by delete_status if 'delete_status' in self.params: if self.params['delete_status'] == 1: conds_and = [Image.del_status == True] # FILTER by keyword if 'keyword' in self.params: keyword = self.params['keyword'] if 'url' in self.search_list: conds_or.append(Image.url.like('%{}%'.format(keyword))) # FILTER and_ & or_ if len(conds_or) >= 1: self.objects = Image.query.filter(and_(*conds_and), or_(*conds_or)) else: self.objects = Image.query.filter(and_(*conds_and)) return self.objects