Python Django:从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
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的用户。”你能重新措辞并详细说明一下吗?谢谢,我现在就试试。但是你能给我推荐一些好的大数据搜索模块吗