擅长:python、mysql、java
<p>我认为您使用的<code>related_names</code>有点误导,因为它们应该表示一个反向关系,所以可能会将它们改成这样(不知道确切的用例)。例如,<code>org.connections_requested.all()</code>将返回一个包含所有连接的查询集,其中<code>org</code>是<code>requester</code>。你知道吗</p>
<pre><code>class Connection(models.Model):
requester = models.ForeignKey(Organisation, related_name='connections_requested', null=True, on_delete=models.CASCADE)
requestee = models.ForeignKey(Organisation, related_name='connections_joined', null=True, on_delete=models.CASCADE)
is_connected = models.BooleanField(default=False)
</code></pre>
<p>您可以根据以下关系进行筛选:</p>
<pre><code>organisations = Organisation.objects.filter(
connections_requested__requestee=org2,
connections_requested__is_connected=True
).distinct() # you may need that
</code></pre>
<p>您还可以直接对<code>Connection</code>类进行筛选:</p>
<pre><code>connections = Connection.objects.filter(is_connected=True)
</code></pre>