2016-12-22 8 views
0

です。私はLinkedinのようなconnect関数を実装しています。 私のモデルはManyToMany関係を持つDjangoクエリは

class AFSUser(models.Model): 
    connects = models.ManyToManyField("self", through='UserConnect', symmetrical=False) 

class UserConnect(models.Model): 
    date_followed = models.DateTimeField(auto_now_add=True) 
    date_approved = models.DateTimeField(null=True, blank=True) 
    date_rejected = models.DateTimeField(null=True, blank=True) 
    requester = models.ForeignKey(AFSUser, on_delete=models.CASCADE, related_name='request_user') 
    acceptor = models.ForeignKey(AFSUser, on_delete=models.CASCADE, related_name='accept_user') 

私はユーザーの接続をリストしたいと思います。 試しました

approved_connections = UserConnect.objects.filter(Q(requester=afsUser) | Q(acceptor=afsUser),             date_aprroved__isnull=False, 
                    date_rejected__isnull=False) 

次にリストを取得します。 他の方法は、私は

users = userA.connects.filter(...) 
+0

を使用することができますすることは非常に明確ではありません。あなたの質問を明確にしてください。 –

答えて

2

を行うことができますはい、あなたが取得したい何through

userA.connects.through.objects.filter(Q(requester= userA)|Q(acceptor=userA)) 
+0

これは私が探していたものです。 –

関連する問題