问题我正在使用 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')
1 回答
慕标琳琳
TA贡献1830条经验 获得超9个赞
您可以通过以下方式获取数据:
ServedPatients = Patients.objects.select_related('Staff', 'Staff_Mch')
或者,如果您想过滤 的名称MCH,您可以使用以下方式过滤:
ServedPatients = Patients.objects.filter(Staff__Mch__Name='mch1')
在这里,您可以获得具有 as an的Patients对象,具有 as name 。但是,在这里您不会将 和 的数据添加到关系中,您可以将两者结合起来:StaffMch'mch1'StaffMch
ServedPatients = Patients.objects.select_related(
'Staff', 'Staff_Mch'
).filter(Staff__Mch__Name='mch1')
注意:通常 Django 模型中的字段名称是用 snake_case 编写的,而不是PerlCase,所以它应该是:staff而不是Staff.
注意:通常 Django 模型被赋予一个单数名称,所以Patient而不是Patients.
添加回答
举报
0/150
提交
取消