我具有以下数据结构:
class File(models.Model):
dataset = models.ForeignKey(Dataset)
class Dataset(models.Model):
mission = models.ForeignKey(Mission)
class Mission(models.Model):
project = models.ForeignKey(Project)
class Project(models.Model):
pass
我想有效地确定一个Project是否包含任何文件。从单个Project
对象开始,如何获取所有相关文件的列表?
我知道project.mission_set.all()
会让我进入第一层,但是我不知道如何有效地链接查询。
答案 0 :(得分:3)
如果您想知道哪些Files
实例与my_project
实例相关,则可以按以下方式访问它:
my_project = Project.objects.create()
File.objects.filter(dataset__mission__project=my_project)
为了知道您可以做的数量:
File.objects.filter(dataset__mission__project=project).count()