def find_post_by_category(cls, category_name, page=1, per_page=10): """ Find all post publish by specific author :param category_name: category name :param page: page index begin at 1 :param per_page: :return: """ if not category_name: raise InvalidFieldError("category cannot be empty", ["category"]) cat_slug = get_slug_from_string(category_name) args = {"categories": "`%s`" % cat_slug} # validate pagination info if not is_id_valid(page): page = 1 if int(per_page) <= 0 or int(per_page) >= 50: per_page = 10 start = (page - 1) * per_page # id in sql start at 1 post_list = DBPost.search(search_dict=args, start=start, per_page=per_page, order_by="time desc") return post_list
def __init__(self, name): self.name = name self.slug = get_slug_from_string(name)