0

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

4 回答 4

1

我之前只浏览了 haystack 代码,但这不是因为您正在索引模型属性“user”,这意味着这将是唯一搜索的字段吗?

于 2010-12-09T09:55:38.103 回答
1

您的 UserProfile_text.txt(SearchIndex 模板)的内容是什么?它应该是这样的

{{ object.username }}
{{ object.firstname }}
...

包含您希望从该模型索引的所有字段。请参阅文档

于 2010-12-15T10:00:28.913 回答
0

关键是

基本上,您定义要在索引模型的模板中索引的关键字

所以请将您需要的字段添加到您的模板文件中

于 2011-12-14T18:34:18.757 回答
0

模板文件应该是这样的:

{{ object.user.first_name}}
{{ object.user.middle_name }}
于 2017-09-22T07:11:51.720 回答