为了账号安全,请及时绑定邮箱和手机立即绑定

Django 从三个表中检索数据

Django 从三个表中检索数据

幕布斯6054654 2022-10-11 10:29:05
问题我正在使用 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.


查看完整回答
反对 回复 2022-10-11
  • 1 回答
  • 0 关注
  • 72 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信