我正在尝试使用Django REST框架生成json我稍后可以在我的网站上使用。问题是,我有用户,他们有一对多的项目,而且这些项目有一对多的任务。
问题是,我想显示我的用户列表,然后当我访问用户的详细信息时,我可以看到他的项目。然后,当我检查项目的细节时,我可以看到这个项目的任务。现在,我的模型定义如下:
class SimpleUser(AbstractBaseUser):
username = models.TextField(max_length=40, unique=True)
firstname = models.TextField(max_length=40)
lastname = models.TextField(max_length=40)
class Project(models.Model):
user = models.ForeignKey(SimpleUser, null=True)
name = models.TextField(max_length=255)
class Task(models.Model):
project = models.ForeignKey(Project, related_name='task_project')
title = models.TextField(max_length=255)
当我试图显示链接到用户的项目时,无论我尝试什么,我都会出错(我很确定这是因为我所做的是错误的),错误是“ SimpleUser没有属性Project“。这是合乎逻辑的。但我真的不知道怎么做,有人可以帮助我吗?
答案 0 :(得分:1)
您应该使用project_set
来访问SimpleUsers
Projects
。
user = SimpleUser.objects.get(id=1)
projects = user.project_set.all()
或者使用related_name=
user = models.ForeignKey(SimpleUser, null=True, related_name='projects')
然后,您可以通过projects
访问用户项目:
projects = user.projects.all()
答案 1 :(得分:1)
尝试明确指定关系的related_name
:
class Project(models.Model):
user = models.ForeignKey(SimpleUser, null=True, related_name='projects')
name = models.TextField(max_length=255)