我和Haystack合作。下面是我的模型和索引。
@python_2_unicode_compatible
class Record(models.Model):
name = models.CharField(max_length=20, verbose_name="Hostname")
address = models.CharField(max_length=50)
def __str__(self):
return self.name
我的索引如下:
class RecordIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.EdgeNgramField(document=True, use_template=True)
name = indexes.CharField(model_attr="name")
def get_model(self):
return Record
def index_queryset(self, using=None):
return self.get_model().objects.all()
然后我的模板文件是
{{ object.name }}
{{ object.address }}
然后我尝试使用像这样的SearchQueryAPI。
SearchQuerySet().filter(name=record.name).models(Record)
但是这没有用。接下来,我试过了。
SearchQuerySet().filter(text=record.name).models(Record)
这很有用。谁能告诉我为什么?另外,想知道我是否不仅可以使用模板来完成这项工作吗?