Django查询基于外键字段值选择唯一行

时间:2019-06-04 09:32:03

标签: python django database django-models

嗨,我有两个这样的模型

class Department(models.Model):
  name = models.CharField(max_length=100)
  creator = models.ForeignKey(User)


class Post(models.Model):
  title = models.CharField(max_length=100)
  description = models.TextField()
  is_active= models.BooleanField(default=True)
  department = models.ForeignKey(Deparment)
  post_by = models.ForeignKey(User)
  
  

用户可以创建n次来自同一部门的n次帖子。 但我只想从每个部门获取一个职位。例如: 部门A有10位用户,所有用户都发布了相同的标题和描述 部门B有10位用户,所有用户发布的标题和描述都相同。

现在我想从每个部门中获取第一个创建的帖子,在结果中,我要首先从部门A创建一个帖子,然后首先从部门B创建一个帖子。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

首先获取所有部门,然后从每个部门获取first_post:

departments = Department.objects.all()

post_list = []

for department in departments:
    post_list.append(department.post_set.all()[0])

现在post_list每个部门都有一个职位。