0

検索エンジンとして django-haystack と solr を使用して、指定されたクエリに一致するユーザー名、名、姓、または電子メール アドレスを持つユーザーのリストを表示する検索エンジンの実装に成功しました。

search_indexes.py

from haystack.indexes import *
from haystack import site

from django.contrib.auth.models import User

class UserIndex(SearchIndex):
    text = CharField(document=True, use_template=True)
    first_name = CharField(model_attr='first_name')
    last_name = CharField(model_attr='last_name')
    email = CharField(model_attr='email')

    def index_queryset(self):
        return User.objects.exclude(username='root')

site.register(User, UserIndex)

user_text.txt

{{ object.username }}
{{ object.first_name }}
{{ object.last_name }}
{{ object.email }}

ただし、個人名、姓、メール アドレスで検索できないように、ユーザーがプライバシー設定を設定できるようにする予定です。

私はこの機能を実現するために何日も頭とコンピューターを叩いてきましたが、まだ本当に良い解決策を見つけていません.

上記の機能を実現することはまったく可能ですか?

事前にどうもありがとうございました。

4

1 に答える 1

1

制約テーブルを作成し、たとえば haystack の SearchQuerySet を使用して除外することができます。次に示すのは Tastypie を API として使用する例ですが、これはカスタム サービスまたはビュー レイヤーでもかまいません。

http://django-tastypie.readthedocs.org/en/latest/resources.html#advanced-filtering

于 2012-10-13T08:26:41.850 に答える