Ошибка стога сена 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

Другие вопросы по тегам