Ошибка стога сена django: AttributeError: у объекта нет атрибута 'fields'
Я следовал учебному пособию по стогу сена построчно, но когда я попытался запустить команду rebuild_index, я получил ошибку AttributeError: у объекта CustomerIndex нет атрибута fields
Я дважды проверил мой файл настроек, в моих установленных приложениях есть стог сена и мои настройки двигателя.
Я использую свист в качестве поисковой системы. Версия стога сена 2.1.0 и свистом 2.5.6
Пожалуйста, помогите мне избавиться от этой ошибки.
Это мой файл search_indexes.py:
import datetime
from haystack import indexes
from customers.models import Customer
class CustomerIndex(indexes.SearchField, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
first_name = indexes.CharField(model_attr='first_name')
create_date = indexes.DateTimeField(model_attr='create_date')
def get_model(self):
return Customer
def index_queryset(self, using=None):
"""
used when the entire index model is updated
"""
return self.get_model()._default_manager.\
filter(create_date__lte=datetime.datetime.now())
1 ответ
Решение
Ошибка в атрибуте класса. Просто замени SearchField
от SearchIndex
в атрибутах класса измените:
class CustomerIndex(indexes.SearchField, indexes.Indexable):
чтобы:
class CustomerIndex(indexes.SearchIndex, indexes.Indexable):
Другая причина, которая может вызвать это, - это использование обычного drf по умолчанию ModelViewSet
вместо того HaystackViewSet