def test_searching_q_ok(value, db_lookup, db_value): cls = BooksFilterClass(book_qs) for v in (value, '"{}"'.format(value)): like_q = cls.build_q_for_filter(FilterArgs('title', SearchOperators.LIKE, v)) assert like_q.children[0] == ('title__{}'.format(db_lookup), db_value) i_like_q = cls.build_q_for_filter(FilterArgs('title', SearchOperators.I_LIKE, value)) assert i_like_q.children[0] == ('title__i{}'.format(db_lookup), db_value)
def filter_field(filter_name, operator, value): filter_cls = BooksFilterClass(book_qs) q = filter_cls.build_q_for_filter( FilterArgs(filter_name, operator, str(value))) return list(book_qs.filter(q))