def __init__(self, query_filter, mappings=None, allow_null=False):
if mappings is None:<EOL><INDENT>mappings = []<EOL><DEDENT>self._query_filter = query_filter<EOL>self._allow_null = allow_null<EOL>self._mappings = mappings<EOL>
query_filter = {FILTER_VALUES: dict, FILTER_HINT: dict}
        - FILTER_VALUES dictionary (see example)
        - FILTER_HINTS dictionary - tells which operator (OperatorEq, OperatorBetween, ...)
            use to which key from FILTER_VALUES dictionary
mappings dict - maps keys from FILTER_VALUES to column attributes names of objects (see example)
              - if the key from FILTER_VALUES is equal to the name of column attribute,
                it doesn`t have to be mentioned in mappings
allow_null boolean - if False (default value), None values from FILTER_VALUES will be ignored

Example:
    query_filter = {
        FILTER_VALUES: {'fullname': 'jessica', 'lastname_initial': None},
        FILTER_HINT: {
            'fullname': OperatorLike,
            'lastname_initial': OperatorLeftLike,
            'exclude_cid': OperatorNeq,
        }
    }
    mappings = {
        'lastname_initial': (Celebrity, 'lastname'),
        'exclude_cid': (Celebrity, 'cid'),
    }

    Notes: - 'fullname' key from FILTER_VALUES corresponds to column attribute Celebrity.fullname,
            it doesn`t have to be mentioned in mappings
          - if allow_null == False, key 'lastname_initial' from FILTER_VALUES will be ignored
          - Celebrity is a sqlalechemy db model