0

我正在尝试使用 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 没有属性项目”。这是合乎逻辑的。但我真的不知道该怎么做,有人可以帮助我吗?

4

2 回答 2

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()
于 2013-06-07T12:50:37.207 回答
1

尝试明确指定related_name关系:

class Project(models.Model):
    user = models.ForeignKey(SimpleUser, null=True, related_name='projects')
    name = models.TextField(max_length=255)
于 2013-06-07T12:51:45.177 回答