Я пытаюсь получить количество объектов, которые охватывают отношение. Каждый TestPlan содержит n случаев. Метод plan_case_count () дает мне счет. Каждый TestPlanCase содержит n шагов. Я хочу получить сумму всех шагов для всех случаев, связанных с планом. Предполагается, что метод plan_case_step_count () делает это путем перебора набора запросов и суммирования счетчиков. Но это не работает. Я получаю сообщение об ошибке:
Объект «RelatedManager» не имеет атрибута «testplanstep_set»
class TestPlan(models.Model):
tp_title = models.CharField(max_length=200)
tp_version = models.IntegerField()
tp_date = models.DateField(default=timezone.now)
def plan_case_count(self):
"""This one works"""
return self.testplancase_set.count()
def plan_case_step_count(self):
"""This one doesn't"""
pcs_count = 0
for case in self.testplancase_set:
pcs_count += case.testplanstep_set.count()
return pcs_count
class TestPlanCase(models.Model):
tpc_plan = models.ForeignKey(TestPlan, on_delete=models.CASCADE)
tpc_case = models.ForeignKey(TestCase, on_delete=models.CASCADE)
tpc_seq_no = models.IntegerField(default=1)
class TestPlanStep(models.Model):
tps_case = models.ForeignKey(TestPlanCase, on_delete=models.CASCADE)
tps_step = models.ForeignKey(TestSteps, on_delete=models.CASCADE)
tps_ok = models.CharField(max_length=4, choices=Choices.yes_no)
tps_issue = models.CharField(max_length=200, blank=True)
Что я делаю не так?