1
많은 필터링 나는 쿼리를 다음과 같이 있습니다 : 수많은 연결 롤빵이있을 수많은 필드 장고
queryset = User.objects.filter(
~Q(pk=self.request.user.pk),
~Q(connections_as_initiator__peer=self.request.user,
connections_as_initiator__stopped=False))
intitator 및 피어 하나 Beetween 하나의 stopped
가 아니라고. 따라서이 쿼리에서 현재 사용자와 쿼리 된 사용자 사이에 현재 사용자가 피어 인 활성 연결이 있는지 여부를 확인해야합니다. 그러나 이것은 전혀 무슨되지 않습니다 :
SELECT accounts_user.id FROM accounts_user
WHERE (
NOT accounts_user.id = 48
AND NOT accounts_user.id IN (SELECT U1.initiator_id AS col1 FROM connection U1 WHERE U1.peer_id = 48 AND U1.stopped = FALSE)
);
ORM이나와 그것을 달성 할 수있는 방법이 있나요 : 내가 생각하고 있었는데 (무엇 예상 결과를 제공하는 것은) 같은 일이
SELECT accounts_user.id FROM accounts_user
WHERE (
NOT accounts_user.id = 48
AND NOT accounts_user.id IN (SELECT U1.initiator_id AS col1 FROM connection U1 WHERE U1.peer_id = 48)
AND NOT accounts_user.id IN (SELECT U1.initiator_id AS col1 FROM connection U1 WHERE U1.stopped = FALSE)
);
입니다 원시 SQL을 사용해야한다. 나는 주석에 대해서도 생각하고 있었지만, 아직 방법을 구현하는 방법을 100 % 확신하지는 못했다.