首页 > 解决方案 > 如何计算另一个模型 django?

问题描述

希望你很好

我有这些模型:

class Task(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    name = models.CharField(max_length=50)
    description = models.TextField()
    priority = models.CharField(max_length=124, choices=priority_options, default="Low")
    status = models.CharField(max_length=124, choices=status_options, default="In Progress")
    start_date = models.DateField()
    end_date = models.DateField()
    invite = models.ManyToManyField(User, related_name="invite", blank=True)

    def __str__(self):
        return self.name

class Issue(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    task = models.ForeignKey(Task,on_delete=models.CASCADE)
    issue = models.TextField()
    timestamp = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.task.name

现在我已经使用这个命令来计算任务:

Task.objects.filter(user=request.user,status="Completed").count()

现在我想找到这个用户创建的任务并且状态是完成的问题

我怎样才能做到这一点?

标签: django

解决方案


我从您的问题中了解到您想要属于您过滤的任务的所有问题。

您可以使用

tasks = Task.objects.filter(user=request.user, status="Completed")
count = tasks.count()
issues = Issue.objects.filter(task__in=tasks)

__in此处记录了对字段的添加: https ://docs.djangoproject.com/en/3.1/ref/models/querysets/#id4


推荐阅读