如何将条件应用于django中的查询集

时间:2017-12-26 06:19:35

标签: python django django-models

我是编程的新手,我怀疑我是否使用表格数据形成了QuerySet,我想知道如何将条件应用于形成的查询集并获取计数。

代码:

final_set = TaskMaster.objects.filter(istaskactive=True)

我想要像

这样的东西
no_of_rebuild_task = final_set..objects.filter(tasktype.id=1).count

model.py

class TaskMaster(models.Model):
  sid = models.CharField(max_length=3)
  # Remember to change the default value in processor in production
  processor = models.ForeignKey(User,null=True,on_delete=models.CASCADE,default=1)
  tasktype = models.ForeignKey(TaskTypeTable, null=True,on_delete=models.CASCADE)
  task_title = models.TextField(null=True)
  task_description = models.TextField(null=True)
  datacenter = models.ForeignKey(DatacenterTable,null=True,on_delete=models.CASCADE)
  priority = models.ForeignKey(PriorityTable, null=True,on_delete=models.CASCADE)
  status = models.ForeignKey(StatusTable, default=1,on_delete=models.CASCADE)
  pid = models.IntegerField(null=True)
  sourceincident = models.CharField(max_length=250,null=True)
  errorincident = models.CharField(max_length=250,null=True)
  processingteam = 
  models.ForeignKey(TeamTable,null=True,on_delete=models.CASCADE)
  createddate = models.DateField(("Date"), default=datetime.date.today)
  duedate = models.DateField(("Date"), default=datetime.date.today)
  istaskactive = models.BooleanField(default=True)

2 个答案:

答案 0 :(得分:0)

no_of_rebuild_task = final_set.filter(tasktype__id=1).count()

答案 1 :(得分:0)

在Django ORM中,您可以使用count()来计算所选表中的记录数。 因此,对于您的查询,它可以是

no_of_rebuild_task = TaskMaster.objects.filter(istaskactive=True, tasktype_id=1).count()

查看Django ORM的有效方式 和count()在这里。