【问题标题】:django query for select unique rows based on foreign key field valuedjango 查询基于外键字段值选择唯一行
【发布时间】:2019-10-19 19:46:45
【问题描述】:

您好,我有两个这样的模型

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 创建帖子。

我该怎么做?

【问题讨论】:

    标签: python django database django-models


    【解决方案1】:

    先获取所有部门,再获取每个部门的first_post:

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

    现在post_list 将有一个来自每个部门的帖子。

    【讨论】:

      猜你喜欢
      • 2014-03-15
      • 2011-12-25
      • 1970-01-01
      • 1970-01-01
      • 2010-11-13
      • 2015-07-30
      • 2017-09-18
      • 2012-10-10
      • 2021-09-20
      相关资源
      最近更新 更多