Django-ORM中的多个查询

2024-06-06 20:27:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下用户模型

class User(AbstractBaseUser, PermissionsMixin, Base):
    email = models.EmailField(db_index=True, unique=True, max_length=255)
    mobile = PhoneNumberField(null=True)

还有房间模型

^{pr2}$

我想查查是否有一个同时有a和b两个成员的房间。我试过了

PrivateRoom.objects.filter(members__id=first.id, members__id=second.id).exists()

这给了我一个错误keyword argument repeated。 有人能帮我查一下吗。在


Tags: 用户模型idtruedbbasemodelsemail
1条回答
网友
1楼 · 发布于 2024-06-06 20:27:38

您需要将其分为两个.filter(..)调用:

PrivateRoom.objects.filter(members__id=first.id).filter(members__id=second.id).exists()

这不仅是因为在Python函数调用中不能使用相同的命名参数,而且如果这是可能的(它是针对Q对象的),这意味着您正在寻找一个id都等于first.idsecond.id的单个成员。在

这不是您想要的:您需要两个不同的连接:一个用于第一个成员,另一个用于第二个成员。在

相关问题 更多 >