gpt4 book ai didi

django - 在Django Haystack中的MultiValueField中过滤多个值

转载 作者:行者123 更新时间:2023-12-04 13:40:03 25 4
gpt4 key购买 nike

我有两个像下面这样的模型。权限结构允许一个人看到与它们具有相同组的任何对象,因此,如果一个人位于第1、2和3组中,并且一个对象与第3、4、5组共享,则该人可以在第3组中查看。

class Person(models.Model):
groups = models.ManyToManyField(Group)

class Object(models.Model):
groups = models.ManyToManyField(Group)

SearchIndex是这样的:
class ObjectIndex(indexes.SearchIndex, indexes.Indexable):
groups = indexes.MultiValueField(null=True)

def prepare_groups(self, obj):
return [group.pk for group in obj.groups.all()] or None

那么,创建 SearchQuerySet的最佳方法是什么,它使我可以采用类似于 SearchQuerySet().models(Object).filter(groups=aperson.groups.all())的方式,即在组上使用OR而不是AND?

最佳答案

看起来正确的方法是:

SearchQuerySet().models(Object).filter(groups__in=[g.id for g in aperson.groups.all()])

关于django - 在Django Haystack中的MultiValueField中过滤多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20058693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com