Django + Haystack поиск полного имени пользователя - PullRequest
0 голосов
/ 09 декабря 2010

Я настраиваю django-haystack и просто хочу задать вопрос.

Я использую django-профили, которые позволяют мне добавлять отдельную информацию, например, город, пол и т. Д.

Я создал search_indexes.py для моего UserProfile, когда я выполняю поиск, кажется, он только возвращает результат имени пользователя, т. Е.

если я наберу john и имя пользователя пользователя будет john, оно будет поднято, если я наберу James и имя пользователя john будет James, оно не вернет результат.

my 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 ]

1 голос
/ 15 декабря 2010

Каково содержимое вашего UserProfile_text.txt (шаблон SearchIndex)? Это должно быть что-то вроде

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

со всеми полями, которые вы хотите проиндексировать из этой модели. См. документацию

1 голос
/ 09 декабря 2010

Раньше я только просматривал код стога сена, но не потому ли, что вы индексируете атрибут модели "user", что означает, что будет выполняться поиск только в одном поле?

0 голосов
/ 22 сентября 2017

Файл шаблона должен иметь вид:

{{ object.user.first_name}}
{{ object.user.middle_name }}
0 голосов
/ 14 декабря 2011

ключевой момент -

в основном вы определяете, какие ключевые слова вы хотите проиндексировать в шаблоне вашей индексной модели

поэтому, пожалуйста, добавьте нужные поля в файл шаблона

...