【发布时间】:2021-09-03 20:42:47
【问题描述】:
假设我有 2 个模型:
Class Tree(models.Model):
title = models.CharField(max_length=255)
Class Apple(models.Model):
tree = models.ForeignKey(Tree, related_name="apples")
如何选择所有具有苹果的树。
我的意思是我想从 Tree 的实例中选择存在于 Apple 模型中的所有 Trees。
我想我想执行这个查询:
SELECT DISTINCT tree.id, tree.title
FROM apple JOIN tree ON apple.tree = tree.id
到目前为止,我已经编写了 2 个查询并且它们正在工作,但我认为它们不是最好的做法:
Tree.objects.filter(
apples__tree__in=Apple.objects.all().values_list("tree")
).distinct()
Tree.objects.filter(apples__tree__isnull=False).distinct()
【问题讨论】:
-
在此链接中您可以找到最佳实践:Django Query Related Field Count
标签: django django-models