Skip to content

Instantly share code, notes, and snippets.

@benzkji
Last active August 24, 2017 18:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save benzkji/6028c0aea005c480537f557f96a045e2 to your computer and use it in GitHub Desktop.
Save benzkji/6028c0aea005c480537f557f96a045e2 to your computer and use it in GitHub Desktop.
multilanguage haystack search index, with aldryn_search
from __future__ import unicode_literals
from aldryn_search.base import AldrynIndexBase
from django.template.loader import render_to_string
from haystack import indexes
from bodenschatz.models import Product
class ProductIndex(AldrynIndexBase, indexes.Indexable):
text = indexes.NgramField(document=True, use_template=False)
title = indexes.NgramField()
type = indexes.CharField()
montage = indexes.CharField()
url = indexes.CharField()
def get_model(self):
return Product
def get_index_queryset(self, language):
return self.get_model().objects.published()
def prepare_type(self, object):
return 'product'
def prepare_montage(self, object):
return object.montage
def get_search_data(self, obj, language, request):
context = {'object': obj, }
search_text = render_to_string('search/indexes/bodenschatz/product_text.txt', context)
return search_text
def prepare_fields(self, obj, language, request):
# self.prepared_data['language'] = language
# translated fields shall be set right here!
self.prepared_data['url'] = obj.get_absolute_url()
self.prepared_data['title'] = obj.title
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment