[英]Django: exclude User list from all Users
我今天問了一個類似的問題( Django:從所有Users中排除User列表 ),解決方案是編寫一個對稱查詢。 由於我以多對多關系更改了模型,因此該解決方案不再有效。
如何從用戶實例中排除用戶列表? 使用此方法:
class Shift(models.Model):
shift_location = models.CharField(max_length=200)
users = models.ManyToManyField(User)
def get_shift_users(self):
return self.users.all()
def get_other_users(self):
return User.objects.all().exclude(self.users.all())
我收到錯誤:AttributeError:'User'對象沒有屬性'split'
您需要使用in
運算符:
User.objects.exclude(id__in=self.users.all())
通過使用未self.users.all()
的查詢集( self.users.all()
),它將在子查詢中轉換,因此將在單個查詢中獲取結果。
也許是這樣的:
User.objects.all().exclude(id__in=[u.id for u in self.users.all()])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.