我有以下两种数据库模型:
class UserProfile(models.Model):
description = models.TextField()
class Channel(models.Model):
subscribed = models.ManyToManyField(UserProfile,
related_name="subscribed")
鉴于,我希望在一列中显示订阅该频道的用户以及未订阅到其他列中的频道的频道。 获得订阅频道的用户不会有任何问题。如何选择未订阅频道的用户以及发送未订阅的用户的用户个人资料对象。
答案 0 :(得分:2)
只需使用exclude
代替filter
。
答案 1 :(得分:0)
c = Channel.objects.get(pk=1)
subscribed = c.subscribed_set.all()
not_subscribed = UserProfile.objects.exclude(pk__in=[s.pk for s in subscribed])