簡體   English   中英

Django:從所有用戶中排除用戶列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM