类 之间的 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()