haystack 文档(下面的链接)做出了这样的声明:
Additionally, we're providing use_template=True on the text field. This allows us to use a data template (rather than error prone concatenation) to build the document the search engine will use in searching.
如何使用串联来构建文档?我找不到例子。
这可能与重写 prepare 方法有关(第二个链接)。但在文档中给出的示例中,准备方法与模板一起使用,因此两者也可能是正交的。
https://github.com/toastdriven/django-haystack/blob/master/docs/tutorial.rst
http://django-haystack.readthedocs.org/en/latest/searchindex_api.html#advanced-data-preparation
请您参考如下方法:
您可以在 Haystack source 中看到它是如何工作的.基本上,SearchField(Haystack 字段的基类)上的 prepare 方法的默认实现调用 prepare_template if use_template 为真。
如果您不想使用模板,您确实可以使用串联 - 它就像将您想要的数据连接在一起一样简单,用一些东西分隔(这里我使用了换行符):
def prepare_myfield(self, obj):
return self.cleaned_data['field1'] + '\n' + self.cleaned_data['field2']
等等
