import os os.environ['DJANGO_SETTINGS_MODULE']='web.settings' from web.library.models import * from django.db.models import Q from util import * def search_person(search_strings, search_description=False): basic_query=Person.objects.select_related('books__book__alt_titles') for word in search_strings: basic_query=basic_query.filter(Q(first_name__icontains=word) | Q(last_name__icontains=word) | Q(id__icontains=word) | Q(books__book__isbn__icontains=word) | Q(books__book__title__icontains=word) | Q(books__book__alt_titles__alt_title=word) | Q(books__book__id__id__icontains=word)) return remove_duplicates(basic_query.all()) def search_book(search_strings, search_description=False): basic_query = Book.objects.select_related('persons__person','id','alt_titles') for word in search_strings: basic_query=basic_query.filter(Q(title__icontains=word) | Q(subtitle__icontains=word) | Q(alt_titles__alt_title__icontains=word) | Q(id__id__icontains=word) | Q(persons__person__first_name__icontains=word) | Q(persons__person__last_name__icontains=word)) return remove_duplicates(basic_query.all()) def remove_duplicates(list): d = {} for i in list: d[i]=None return d.keys()