Django查询过滤掉用户列表中的当前用户

问题描述:

我有一个查询返回用户列表。它包含当前登录的用户,我想在不返回此用户的情况下进行相同的查询。在我的模型中,Book有一个名为Library的外键,称为library,Library对用户称为订阅者有一个m2m。这可能并不重要,因为对所有用户的简单查询也可能适用于该示例。Django查询过滤掉用户列表中的当前用户

users = book.library.subscribers.all() 

request.user最终也在用户中,我不想这样做。我知道我可以在查询后将它从列表中删除,但是我想知道是否有直接的方法将request.user从查询中排除。

你可以做

book.library.subscribers.exclude(user=request.user) 

假设,用户是存储用户

+0

我不知道,了解哪里“用户”来自属性?存储库中用户的属性是'订户'(用户为m2m)。在Book中没有存储用户的属性。 – Bastian 2013-05-13 00:16:48

+0

好的。在模型中,“订户定义为”是什么?如果你所描述的是真实的,你一定会得到一个错误 – karthikr 2013-05-13 00:17:39

+0

subscribers = models.ManyToManyField(User,related_name ='subscribers') – Bastian 2013-05-13 00:18:49