Наверное самая здравая идея - это использование поисковой машины и haystack.
А у вас ошибка в том =), что 'QuerySet' object has no attribute 'append'
.
И если это переводить на человеческий язык, то Entry.objects.filter(...)
- не является списком =), попробуйте list(Entry.objects.filter(...))
А вообще код у вас очень плохо написан.
Ок, допустим у вас есть некая форма SearchForm и она валидная
phrase = request.POST.get('phrase', '')
Зачем нужна эта строка, если наверняка в форме есть field phrase?
Вообще можно вынести весь метод search в класс SearchForm.
Затем вы делаете сумасшедшее кол-во запросов к базе данных на ровном месте, которое еще зависит от длинны строки.(кол-ва слов).
Напишу я в строку поиска "а б в....я".
Все QuerySet объекты являются ленивыми, т.е. до тех пор, пока вы явно не потребуете вызов объекта, запрос к базе осуществлен не будет.