I am trying to get the book list with 3 conditions: Accession number (character varying,10) Physical location (character varying,20) Book status Based on the user input: Accession number should be present in the list provided by the user Physical location should be exact match Book status should be 'Published' qobjects = Q() variable_column = "accession_number" search_type = 'in' filter_string = variable_column + '__' + search_type #Passed accessionNumber as '123','234',456' #Also tried 123,456,567 #Both did not work search_string = '['+accessionNumber+']' qcolumn = Q(**{filter_string: search_string}) qobjects.add(qcolumn, Q.AND) print('print qobjects after adding accession numbers') print(qobjects) location_column="physical_location" search_type='iexact' filter_string = location_column + '__' + search_type qcolumn_location = Q(**{filter_string: location}) print('print qobjects after adding location') print(qobjects) qobjects.add(qcolumn_location,Q.AND) qcolumn_status = Q(**{'booK_status': 'PUBLISHED'}) qobjects.add(qcolumn_status, Q.AND) print('print qobjects after adding status') print(qobjects) res_set = Book.objects.filter(qobjects).order_by(location_column). \ values('id', 'title', 'cover_image_name','booK_status', 'accession_number', 'total_image_count',) print('print result set') print(res_set) Continue reading...