我正在设置django-haystack,只是有一个问题。
我使用django-profiles,它允许我添加单独的信息,即城市,性别等。
我为search_indexes.py
创建UserProfile
,当我执行搜索时,它似乎只返回用户的用户名结果,即。
如果我输入john
并且用户的用户名是john,那么当我输入James
并且用户john
的名字是James
时,它就会被选中不会返回结果。
我的search_indexes.py
from haystack.indexes import *
from haystack import site
from models import UserProfile
class UserProfileIndex(SearchIndex):
text = CharField(document=True, use_template=True)
user = CharField(model_attr='user', use_template=True)
def prepare_user(self, obj):
return "%s <%s>" % (obj.user.get_full_name(), obj.user.email)
site.register(UserProfile, UserProfileIndex)
答案 0 :(得分:1)
我之前只浏览过haystack代码,但不是因为你在模型属性“user”上建立索引,这意味着它将是唯一搜索到的字段吗?
答案 1 :(得分:1)
您的UserProfile_text.txt(SearchIndex模板)的内容是什么? 它应该像
{{ object.username }}
{{ object.firstname }}
...
包含您希望从该模型编入索引的所有字段。请参阅documentation
答案 2 :(得分:0)
关键点是
基本上,您可以在索引模型的模板中定义要编入索引的关键字
所以请将您需要的字段添加到模板文件中
答案 3 :(得分:0)
模板文件应该是:
{{ object.user.first_name}}
{{ object.user.middle_name }}