Skip to content

Commit feb4a2f

Browse files
author
yangxg
committed
Merge branch 'Step26_full-text-search-using-django-haystack' into demo
2 parents c706280 + b888e01 commit feb4a2f

File tree

11 files changed

+1021
-2
lines changed

11 files changed

+1021
-2
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ ENV/
9292

9393
database/
9494
media/
95+
whoosh_index/
9596
.idea/
9697
*.sqlite3
9798
fabfile.py

blog/search_indexes.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from haystack import indexes
2+
from .models import Post
3+
4+
5+
class PostIndex(indexes.SearchIndex, indexes.Indexable):
6+
text = indexes.CharField(document=True, use_template=True)
7+
8+
def get_model(self):
9+
return Post
10+
11+
def index_queryset(self, using=None):
12+
return self.get_model().objects.all()

blog/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@
99
url(r'^archives/(?P<year>[0-9]{4})/(?P<month>[0-9]{1,2})/$', views.ArchivesView.as_view(), name='archives'),
1010
url(r'^category/(?P<pk>[0-9]+)/$', views.CategoryView.as_view(), name='category'),
1111
url(r'^tag/(?P<pk>[0-9]+)/$', views.TagView.as_view(), name='tag'),
12+
# url(r'^search/$', views.search, name='search'),
1213
]

blog/views.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from markdown.extensions.toc import TocExtension
44

5+
from django.db.models import Q
56
from django.shortcuts import render, get_object_or_404
67
from django.views.generic import ListView, DetailView
78
from django.utils.text import slugify
@@ -297,3 +298,18 @@ class TagView(ListView):
297298
def get_queryset(self):
298299
tag = get_object_or_404(Tag, pk=self.kwargs.get('pk'))
299300
return super(TagView, self).get_queryset().filter(tags=tag)
301+
302+
303+
"""
304+
def search(request):
305+
q = request.GET.get('q')
306+
error_msg = ''
307+
308+
if not q:
309+
error_msg = "请输入关键词"
310+
return render(request, 'blog/index.html', {'error_msg': error_msg})
311+
312+
post_list = Post.objects.filter(Q(title__icontains=q) | Q(body__icontains=q))
313+
return render(request, 'blog/index.html', {'error_msg': error_msg,
314+
'post_list': post_list})
315+
"""

0 commit comments

Comments
 (0)