0

我正在尝试在模型中的 3 个多字段中进行搜索,以查看用户是否在这些字段中的任何一个中。我将 Q 用于所有 3 个字段或所有 3 个字段,但我似乎无法找到实际查看结果的方法。

raid_teams = Team.objects.filter(Q(tanks__contains=profile.pk) or Q(healers__contains=profile.pk) or Q(dps__contains=profile.pk))

我可能会以完全错误的方式解决这个问题。希望有人能指出我正确的方向。

4

1 回答 1

1

__contains 用于区分大小写的包含搜索(https://docs.djangoproject.com/en/dev/ref/models/querysets/#contains),您只需要普通的 id 相等匹配:

raid_teams = Team.objects.filter(
    Q(tanks__id=profile.pk) |
    Q(healers__id=profile.pk) | 
    Q(dps__id=profile.pk)
)
于 2013-11-01T12:33:53.687 回答