Odpowiedź przez sekundę działa, ale jeśli nie chcesz, aby obcinała koniec napisu i jesteś poniżej maksymalnej długości, możesz spróbować. Wciąż testuję to, ale wydaje się działać:
class MyHighlighter(Highlighter):
"""
Custom highlighter
"""
def highlight(self, text_block):
self.text_block = strip_tags(text_block)
highlight_locations = self.find_highlightable_words()
start_offset, end_offset = self.find_window(highlight_locations)
text_len = len(self.text_block)
if text_len <= self.max_length:
start_offset = 0
elif (text_len - 1 - start_offset) <= self.max_length:
end_offset = text_len
start_offset = end_offset - self.max_length
if start_offset < 0:
start_offset = 0
return self.render_html(highlight_locations, start_offset, end_offset)
5 lat później i mam ten sam problem. Na Github jest nawet problem: https://github.com/django-haystack/django-haystack/issues/748 – weeheavy