Я использую Haystack в одном приложении и его идеальный. Он индексирует все, что мне нужно. Но теперь я создал другое приложение с другой моделью и контентом, и я бы хотел, чтобы Haystack индексировал его. Идея состоит в том, чтобы создать два разных «поисковых» ссылок на моем веб-сайте, по одному для каждого приложения.Django - Haystack в двух разных приложениях
Однако, когда я добавляю вторую конфигурацию Стог индексировать его, я получаю некоторые проблемы ...
Я создал новый search_index.py (внутри моего нового приложения) со следующим содержанием:
import datetime
from haystack.indexes import *
from haystack import site
from oportunity.models import Oportunity
class OportunityIndex(SearchIndex):
title = CharField(document=True, use_template=True)
body = CharField()
date= DateTimeField()
def index_queryset(self):
return Oportunity.objects.filter(date=datetime.datetime.now())
site.register(Oportunity, OportunityIndex)
, но, когда я бег питона manage.py rebuild_index я получаю следующее сообщение об ошибке:
line 94, in all_searchfields raise SearchFieldError("All SearchIndex fields with 'document=True' must use the same fieldname.") haystack.exceptions.SearchFieldError: All SearchIndex fields with 'document=True' must use the same fieldname.
Не могли бы вы попытаться удалить из haystack.indexes import * и выполнить квалифицированный импорт? Однажды я столкнулся с такой проблемой. – ustun