2016-12-22 2 views
0

Я реализую функцию соединения, такую ​​как Linkedin. Мои моделиDjango query with ManyToMany отношения через

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

Это то, что я искал. –

Смежные вопросы