所以我有一个查询,其中有几个 Q 对象被 OR-ed 在一起(以实现 UNION),我想注释每个与 Q 对象匹配的结果。因此,当我去显示我的查询结果时,我可以突出显示每个结果中点击了哪些搜索词。
这是产生结果查询集的代码:
Gene.objects.filter(Q(EC__EC='3.2.1.4')|Q(Protein_Family__name__in=famList)|Q(Pfam__Pfam__in=pfams),Protein_length__gte=100, Distance_From_Contig_Upstream__gte=10, Distance_From_Contig_Downstream__gte=10).distinct()
我想我可以使用 .extra 选项添加这个带注释的列: https ://docs.djangoproject.com/en/1.3/ref/models/querysets/#extra
如果我不能这样做,我可能会做三个单独的查询,然后注释结果,然后将查询集 OR 在一起......我认为这可能非常浪费,而且看起来很笨拙。