检索具有特定参与用户的所有聊天

时间:2018-11-17 15:29:32

标签: django python-3.x django-views

我有一个statistics模型,其中有一个名为Chat的字段。我如何检索所有users,它们的Chat字段中有一个带有特定users的{​​{1}}? CustomUserusername之间存在ManyToMany关系。

我已经尝试了以下方法,但是没有用:

Chat

2 个答案:

答案 0 :(得分:2)

那应该做的。

chats: QuerySet = Chat.objects.filter(users__in=[user.pk])

如果您有多个用户要搜索:

users: QuerySet = CustomUser.objects.filter(...)
user_ids: List = list(users.values_list('pk', flat=True))
chats: QuerySet = Chat.objects.filter(users__in=user_ids)

答案 1 :(得分:1)

除非您出于某些其他原因需要访问user,否则应合并查询集。这样会将所需的sql查询数量减少到1。

Chat.objects.filter(users__username=username)