Python Django:从Django中的不同表进行搜索

Python Django:从Django中的不同表进行搜索,python,django,django-search-lucene,Python,Django,Django Search Lucene,我正在尝试为Django中的用户实现搜索功能 我可以使用Q搜索一个表,但这里的场景不同 以下是我的模型: Class Profile(models.Model) name = models.OnoeToOneField(User) category = models.ForeignKey(Category) Tags = models.ForeignKey(Tags) class Category(models.Model) name = m

我正在尝试为Django中的用户实现搜索功能

我可以使用
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)
我想搜索属于类别和/或标签的用户

但我找不到一个方法来做到这一点。我不想用干草堆或嗖嗖声


请向我建议一些简单的方法来实现这一点。

您是否尝试过这样的查询集

User.objects.filter(
    Q(profile__category__name__icontains=search_string) |
    Q(profile__Tags__name__icontains=search_string)
).distinct()
有关详细信息,请参阅

请注意,我使用
distinct()
来消除重复的结果,因为可以出于两个原因选择同一个用户(每个原因对应于一个Q对象)


(当然,您应该调整
标记\uuuu name
,这是我为了示例而放的,但我没有标记模型的源代码)。

事实上非常简单:

具有类别名称的筛选器:

Profile.objects.filter(category__name__iexact='category 1')
Profile.objects.filter(category__sub_cat__name__iexact='exact sub category name')
具有类别id的筛选器:

Profile.objects.filter(category__pk=27)
具有子类别名称的筛选器:

Profile.objects.filter(category__name__iexact='category 1')
Profile.objects.filter(category__sub_cat__name__iexact='exact sub category name')

“现在,我想搜索一个名为category和tag的用户。”你能重新措辞并详细说明一下吗?谢谢,我现在就试试。但是你能给我推荐一些好的大数据搜索模块吗