intends to process the queries sent by data tables package in frontend.
        The model_cls indicates the model class, get_query_dict is a function
        implemented by you, such that it can
        return a query dictionary, in which the key is the query keyword in str
        form and the value is the queried value

        :param pre_search_condition: None/OrderedDict: dictionary contains
          filter conditions which should be processed before applying the filter
          dictionary from user. None, if no pre_search_condition provided.
        :param kwargs: QueryDict: contains query parameters
        :return: dict: contains total records number, queryset of the filtered
          instances, size of this queryset

def query_by_args(self, pre_search_condition=None, **kwargs):
        """
        intends to process the queries sent by data tables package in frontend.
        The model_cls indicates the model class, get_query_dict is a function
        implemented by you, such that it can
        return a query dictionary, in which the key is the query keyword in str
        form and the value is the queried value

        :param pre_search_condition: None/OrderedDict: dictionary contains
          filter conditions which should be processed before applying the filter
          dictionary from user. None, if no pre_search_condition provided.
        :param kwargs: QueryDict: contains query parameters
        :return: dict: contains total records number, queryset of the filtered
          instances, size of this queryset
        """
        if pre_search_condition and not isinstance(pre_search_condition, OrderedDict):
            raise TypeError(
                "Parameter 'pre_search_condition' must be an OrderedDict.")
        # extract requisite parameters from kwargs
        draw = ensure(int, kwargs.get('draw', [0])[0], 0)

        # just implement the get_query_dict function
        query_dict = self.get_query_dict(**kwargs)
        order_key = self.get_order_key(**kwargs)

        # get the model from the serializer parameter
        model_class = self.serializer.Meta.model
        # get the objects
        queryset = model_class.objects

        # apply the pre search condition if it exists
        if pre_search_condition:
            queryset = self.filtering(queryset, pre_search_condition)
        else:
            queryset = queryset.all()

        # number of the total records
        total = queryset.count()

        # if the query dict not empty, then apply the query dict
        if query_dict:
            queryset = self.filtering(queryset, query_dict)

        # number of the records after applying the query
        count = queryset.count()

        # order the queryset
        queryset = queryset.order_by(order_key)

        # slice the queryset
        queryset = self.slicing(queryset, **kwargs)
        return {'items': queryset, 'count': count, 'total': total, 'draw': draw}