2010-12-09 58 views
0

我正在設置django-haystack,只是有一個問題。Django + Haystack搜索用戶全名

我使用Django的配置文件,允許我補充獨立的信息,即,城市,性別等

我爲我的UserProfile創建search_indexes.py當我執行搜索似乎只返回一個使用者名稱,即導致。

如果我鍵入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) 

回答

1

我之前只瀏覽了草垛代碼,不過,是不是因爲你的模型屬性「用戶」,這意味着,這將是唯一的字段標引搜索?

1

UserProfile_text.txt(SearchIndex模板)的內容是什麼? 它應該像

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

與所有你想從該模型索引的字段。見documentation

0

關鍵的一點是

basicly您定義wantted哪些關鍵字在你的指數模型的模板被索引

所以請補充一點,你需要到您的模板文件中的字段

0

模板文件應該是這樣的:

{{ object.user.first_name}} 
{{ object.user.middle_name }}