如何在不使用值或值的情况下从另一个查询集中高效地获取模型的查询集

2024-04-19 22:16:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有就诊模型和患者模型

class Visit(models.Model):
    patient = model.ForeignKey(Patient)
    # other fields

class Patient(models.Model):
    # other fields

我已经询问过了

visits = Visit.objects.filter(#conditions)

如何在不使用值或值列表的情况下从“就诊”查询集中高效地获取患者实例的查询集。i、 e

patients_ids = visits.values_list("Patient__id", flat=True).distinct()
patients = Patient.objects.filter(id__in=patients_ids)

Tags: 模型患者ididsfieldsmodelobjectsmodels
1条回答
网友
1楼 · 发布于 2024-04-19 22:16:15

理解你的要求有点困难,但我认为这可能是你想要的:

visits = Visit.objects.filter(name=somename, count=something)

要使患者与之对应,您可以:

patients = Patient.objects.filter(visit__name=somename, visit__count=something).distinct()

说明:

Patient模型获得一个向后的多对一引用,默认情况下称为另一个模型的小写(visit)。然后,可以使用双下划线特性__查询该关系,并执行将在Visit过滤器中执行的相同测试。你知道吗

Source

相关问题 更多 >