如何查询这三个表以获取项目的所有用户,任务和项目名称的列表。如何在单个查询集中获取它们? 我使用Django RestFramework来序列化数据。
项目可以有n个用户和n个任务
class Project(models.Model):
name = models.CharField(max_length = 60)
class Subtask(models.Model):
task_name = models.CharField(max_length = 60)
project = models.ForeignKey(Project, related_name = "project_tasks")
class Users(models.Model):
user_name = models.CharField(max_length = 60)
project = models.ForeignKey(Project, related_name = "project_user")
答案 0 :(得分:2)
prefetch_related
用于反向关系,这是您从Project到Subtask和User的所有内容。所以:
Project.objects.get(name=whatever).prefetch_related('project_tasks', 'project_users')
(注意你应该与命名一致;关系是一对多,所以你应该使用复数作为related_name。类似地,模型类名应该是单数的,因为一个实例反映了一个项,所以该类应该是User。 )