0

私は次の2つのデータベースモデルを持っています:

class UserProfile(models.Model):
    description = models.TextField()

class Channel(models.Model):
    subscribed = models.ManyToManyField(UserProfile, 
                                        related_name="subscribed")

あるチャネルを指定して、チャネルにサブスクライブしているユーザーを1つの列に表示し、チャネルにサブスクライブしていないユーザーを別の列に表示します。チャンネルに登録しているユーザーを取得することは問題ありません。チャネルにサブスクライブしていないユーザーを選択し、サブスクライブしていないユーザーのユーザープロファイルオブジェクトを送信するにはどうすればよいですか。

4

2 に答える 2

2

excludeの代わりに使用してfilterください。

于 2012-09-13T11:09:04.417 に答える
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])
于 2012-09-13T11:09:52.907 に答える