类 之间的 django 关系
django relation between classes
假设您有一个由团队拥有的 class 项目。一个团队可以有多个项目,但每个项目只能有一个团队。
class Project(models.Model):
project_manager = models.ForeignKey(Profile, on_delete=CASCADE)
title = models.CharField(max_length=55, null=True, blank=True)
developers = models.ManyToManyField(Profile, related_name='projects')
slug = models.SlugField(max_length=500, unique=True, blank=True)
description = models.TextField(default="Project description")
teams = models.ForeignKey(Team, blank=True, null=True, on_delete=CASCADE)
tasks = project.task_set.all() <-- like this?
然后每个项目都有一个任务,所以必须创建一个任务class,用项目的外键
class Task(models.Model):
title = models.CharField(max_length=55, null=True, blank=True)
members = models.ManyToManyField(Profile, related_name='tasks')
slug = models.SlugField(max_length=500, unique=True, blank=True)
task_completed = models.BooleanField(default=False)
description = models.TextField(default="Task description")
project = models.ForeignKey(Project, blank=True, null=True, on_delete=CASCADE)
然后尝试从任务 class 中获取所有成员时,在项目 class 的视图中,没有关系,项目没有访问权限,怎么办确保项目知道任务就像任务知道项目一样?
您可以通过 _set.all()
获取您的任务
根据项目访问您的任务:
tasks = project.task_set.all()
假设您有一个由团队拥有的 class 项目。一个团队可以有多个项目,但每个项目只能有一个团队。
class Project(models.Model):
project_manager = models.ForeignKey(Profile, on_delete=CASCADE)
title = models.CharField(max_length=55, null=True, blank=True)
developers = models.ManyToManyField(Profile, related_name='projects')
slug = models.SlugField(max_length=500, unique=True, blank=True)
description = models.TextField(default="Project description")
teams = models.ForeignKey(Team, blank=True, null=True, on_delete=CASCADE)
tasks = project.task_set.all() <-- like this?
然后每个项目都有一个任务,所以必须创建一个任务class,用项目的外键
class Task(models.Model):
title = models.CharField(max_length=55, null=True, blank=True)
members = models.ManyToManyField(Profile, related_name='tasks')
slug = models.SlugField(max_length=500, unique=True, blank=True)
task_completed = models.BooleanField(default=False)
description = models.TextField(default="Task description")
project = models.ForeignKey(Project, blank=True, null=True, on_delete=CASCADE)
然后尝试从任务 class 中获取所有成员时,在项目 class 的视图中,没有关系,项目没有访问权限,怎么办确保项目知道任务就像任务知道项目一样?
您可以通过 _set.all()
根据项目访问您的任务:
tasks = project.task_set.all()