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: 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('person__person','id') for word in search_strings: basic_query=basic_query.filter(Q(title__icontains=word) | Q(subtitle__icontains=word) | Q(id__id__icontains=word) | Q(person__person__first_name__icontains=word) | Q(person__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()