2010-12-09 25 views
0

Je configure django-haystack et j'ai juste une question.Django + Haystack recherche nom complet de l'utilisateur

J'utilise des profils de django, ce qui me permet d'ajouter des informations séparées par exemple, la ville, le sexe, etc.

J'ai créé un search_indexes.py pour mon UserProfile quand j'effectuer une recherche, il semble que de retourner un utilisateur username résultat à savoir .

si je tape john et les utilisateurs nom d'utilisateur est john alors il est ramassé, si je tape James et le prénom de l'utilisateur john est James il ne retourne pas de résultat.

mon 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) 

Répondre

1

Je n'ai regardé sur le code de botte de foin avant, mais est-ce pas parce que vous êtes l'indexation sur l'attribut modèle « utilisateur » ce qui signifie que ce sera le seul champ cherché?

1

Quel est le contenu de votre UserProfile_text.txt (le modèle SearchIndex)? Il devrait être quelque chose comme

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

avec tous les champs que vous souhaitez indexé de ce modèle. Voir la documentation

0

le point clé est

basiquement vous définissez ce que vous les mots clés wantted à indexer dans votre modèle de votre modèle d'index

donc s'il vous plaît ajouter des champs que vous avez besoin dans votre fichier modèle

0

Le fichier de modèle devrait être comme:

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