Django 从三个表中检索数据

问题

我正在使用 django 最新版本。我有三个这样命名的表模型


Class MCH():

Name= models.CharField()



Class Staff():

Name=models.CharField()

Mch=models.ForeignKey(MCH,,on_delete=models.CASCADE)

location=models.CharField(..)


Class Patients():   

Name=models.CharField()

Staff=models.ForeingKey(Staff,on_delete=models.CASCADE)

Phone=models.CharField()

我想使用 Django 方法加入树表并过滤数据MCH


我试过这个

ServedPatients=Patients.objects. select_related(Staff__MCH='mch1')


幕布斯6054654
浏览 73回答 1
1回答

慕标琳琳

您可以通过以下方式获取数据:ServedPatients = Patients.objects.select_related('Staff', 'Staff_Mch')或者,如果您想过滤 的名称MCH,您可以使用以下方式过滤:ServedPatients = Patients.objects.filter(Staff__Mch__Name='mch1')在这里,您可以获得具有 as an的Patients对象,具有 as name 。但是,在这里您不会将 和 的数据添加到关系中,您可以将两者结合起来:StaffMch'mch1'StaffMchServedPatients = Patients.objects.select_related(    'Staff', 'Staff_Mch').filter(Staff__Mch__Name='mch1')注意:通常 Django 模型中的字段名称是用 snake_case 编写的,而不是PerlCase,所以它应该是:staff而不是Staff. 注意:通常 Django 模型被赋予一个单数名称,所以Patient而不是Patients.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python