Django + Haystack搜索用户全名

时间:2010-12-09 09:02:21

标签: django django-views django-haystack

我正在设置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)

4 个答案:

答案 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 }}