我有模型:
class Project(models.Model):
project_collaborators = models.ManyToManyField(User)
class Node(models.Model):
collaborators = models.ManyToManyField(User)
project = models.ForeignKey(Project)
假设我拥有节点的 pk,我希望获得所有节点协作者和项目协作者的用户。我需要什么查询?
请您参考如下方法:
from django.db.models import F
User.objects.filter(node__pk=node.pk, project=F('node__project'))
那应该 工作。还没有测试过。如果没有,您也可以试试这个:
User.objects.filter(node__pk=node.pk, project__node__pk=node.pk)
假设它们都 有效,您可能想在 django-debug-toolbar 中尝试两者的 debugsqlshell 管理命令来查看每个产生什么样的查询以及哪个可能更有效。
