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