Fetch database for items matching.

        Args:
            page (int):
                which page will be sliced
                slice size is ``self.per_page``.
            order_by (str):
                a field name to order query by.
            filters (dict):
                a ``filter name``: ``value`` dict.

        Returns:
            tuple with:
                items, sliced by page*self.per_page
                total items without slice

def get_items(self, page=1, order_by=None, filters=None):
        """
        Fetch database for items matching.

        Args:
            page (int):
                which page will be sliced
                slice size is ``self.per_page``.
            order_by (str):
                a field name to order query by.
            filters (dict):
                a ``filter name``: ``value`` dict.

        Returns:
            tuple with:
                items, sliced by page*self.per_page
                total items without slice
        """
        start = (page-1)*self.per_page
        query = self.get_query()
        if order_by is not None:
            query = query.order_by(self._get_field(order_by))
        if filters is not None:
            query = self._filter(query, filters)
        return query.offset(start).limit(self.per_page), self.count(query)