как посчитать анохтер-модель django?

#django

#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()
  

теперь я хочу найти задачу, созданную этим пользователем, и статус завершен.

как я могу это сделать?

Ответ №1:

Я понял из вашего вопроса, что вам нужны все проблемы, относящиеся к задачам, которые вы отфильтровали.

Вы можете использовать

 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

Комментарии:

1. но мы не можем использовать count!

2. извините, я хотел удалить .count() . Я отредактирую свой ответ и покажу вам, как получить количество.

Ответ №2:

Вы можете попробовать это с помощью поиска по полю __in .

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