Предполагается, что у нас есть модель Patient
и Diagnosis
.Как получить связанное значение поля элемента в наборе запросов внутри цикла
class Patient(models.Model):
name = models.CharField()
class Diagnosis(models.Model):
patient = models.ForeignKey(
Patient,
related_name='diagnoses',
on_delete=models.CASCADE
)
is_active = models.BooleanField()
В моем views.py я был в состоянии отфильтровать пациент, у которого диагноз is_active=True
с этим кодом.
# returns queryset whose patient has active diagnosis.
queryset = Patient.objects.filter(
diagnoses__is_active = True
)
Но я не могу получить значение, используя для этого цикл. Я добавил комментарий с ошибками im.
for qs in queryset:
# 'RelatedManager' object has no attribute 'is_active'
print qs.diagnoses.is_active
# 'Patient' object has no attribute 'diagnoses__is_active'
print qs.diagnoses__is_active
# There is no error from this code but
# i got the 'diagnoses.Diagnoses.None' in return
print qs.diagnoses
Как это возможно быть, когда я был в состоянии фильтровать QuerySet в первую очередь?
Спасибо за это! это действительно работает, вы спасли мое время здесь. sir –
Я рад, что это было полезно. Не забудьте выбрать принятый ответ =) – JoseKilo