Projects/worblehat-old
Projects
/
worblehat-old
Archived
12
0
Fork 0

fiksedillet litt mer på søk. Dette skal nå være fungerende

This commit is contained in:
Øyvind Almelid 2010-09-27 20:44:57 +00:00
parent 35d0a09728
commit 8f1a033456
2 changed files with 8 additions and 7 deletions

View File

@ -16,13 +16,14 @@ def search_book_cmd(search_strings, search_description=False):
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')
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(person__person__first_name__icontains=word) |
Q(person__person__last_name__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):

View File

@ -62,7 +62,7 @@ class Book(models.Model):
# return Book.get(isbn=self.isbn)
def get_authors(self):
people = self.person.all()
people = self.persons.all()
authors = []
for person in people:
if person.relation.name == 'Author':
@ -101,13 +101,13 @@ class Person(models.Model):
return self.first_name + u' ' + self.last_name
class Relation(models.Model):
name = models.CharField(max_length=31)
name = models.CharField(max_length=31, primary_key=True)
def __unicode__(self):
return self.name
class BookPerson(models.Model):
book = models.ForeignKey(Book, related_name='person')
book = models.ForeignKey(Book, related_name='persons')
person = models.ForeignKey(Person, related_name='books')
relation = models.ForeignKey(Relation)