0

Django でユーザーの検索機能を実装しようとしています。

1つのテーブル検索に使用できますQが、ここではシーンが異なります。

ここに私のモデルがあります:

Class Profile(models.Model)        
    name = models.OnoeToOneField(User)
    category = models.ForeignKey(Category)
    Tags   = models.ForeignKey(Tags)

class Category(models.Model)
    name = models.Charfield(max_length = 100)
    sub_cat =  models.ForeignKey(SubCategory)

カテゴリやタグに所属しているユーザーを検索したい

しかし、私はこれを行う方法を見つけることができません。Haystack や Whoosh は使いたくありません。

これを達成するための簡単な方法を教えてください。

4

2 に答える 2

1

そのようなクエリセットを試しましたか?

User.objects.filter(
    Q(profile__category__name__icontains=search_string) |
    Q(profile__Tags__name__icontains=search_string)
).distinct()

詳細については、Q オブジェクトを使用した複雑なルックアップを参照してください。

distinct()同じユーザーが 2 つの理由 (それぞれが Q オブジェクトに対応する) で選択される可能性があるため、重複した結果を排除するために使用していることに注意してください。

(もちろん、Tags__name例のためにそのまま適用する必要がありますが、タグモデルのソースはありません)。

于 2013-02-13T08:22:50.607 に答える