You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.0 KiB
34 lines
1.0 KiB
8 years ago
|
# -*- coding: utf-8 -*-
|
||
|
from __future__ import unicode_literals
|
||
|
|
||
|
from haystack import indexes
|
||
|
from .models import Entry
|
||
|
|
||
|
|
||
|
class EntryIndex(indexes.SearchIndex, indexes.Indexable):
|
||
|
text = indexes.CharField(document=True)
|
||
|
|
||
|
def get_model(self):
|
||
|
return Entry
|
||
|
|
||
|
def index_queryset(self, using=None):
|
||
|
"""Used when the entire index for model is updated."""
|
||
|
return self.get_model().objects.all()
|
||
|
|
||
|
# def index_queryset(self, using=None):
|
||
|
# """Used when the entire index for model is updated."""
|
||
|
# if using and using != "default":
|
||
|
# lang_code = using.replace("default_", "")
|
||
|
# else:
|
||
|
# lang_code = settings.LANGUAGE_CODE[:2]
|
||
|
# return self.get_model().objects.filter(language=lang_code)
|
||
|
|
||
|
def prepare_text(self, obj):
|
||
|
# this will be called for each language / backend
|
||
|
return "\n".join((
|
||
|
obj.title,
|
||
|
obj.description,
|
||
|
"\n".join([cat.title
|
||
|
for cat in obj.categories.all()]),
|
||
|
))
|