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_book_cmd(search_strings, search_description=False): books = search_book(search_strings, search_description) format = '%-13s %-10s %-40s %-30s' for book in books: print book.to_string(False) #b_id = book.getid() or '' #title = cut_str(book.title, 40, '*') #authors = map(lambda p: p.first_name+' '+p.last_name, # book.get_authors()) #authors_str = cut_str(', '.join(authors), 30, '*') #print format % (book.isbn, b_id, title, authors_str) 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()