我正在逐行遵循大海捞针教程,但是当我尝试运行命令时rebuild_index出现错误 属性错误:"客户索引"对象没有属性"字段"
我已经仔细检查了我的设置文件,haystack 在我安装的应用程序中,我的引擎设置也在那里。
我正在使用嗖嗖声作为我的搜索引擎。干草堆的版本是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())
错误出在 class 属性中。只需将SearchField
替换为类属性中的SearchIndex
,更改:
class CustomerIndex(indexes.SearchField, indexes.Indexable):
自:
class CustomerIndex(indexes.SearchIndex, indexes.Indexable):
可能导致
这种情况的另一个原因是使用普通drf的默认ModelViewSet
而不是HaystackViewSet