Django多外键关联筛选失效,如何正确筛选MissForm模型?
Django筛选关联模型数据的错误修正
你的筛选代码失效的核心问题是关联字段的路径写错了,我帮你理清楚逻辑并修正:
模型关联逻辑回顾
根据你的描述,三个模型的关联关系是:
MissForm通过外键关联Manager(字段名应该是manager)Manager通过外键关联Employee(字段名比如是employee,这是你需要确认的实际字段名)Employee包含存储用户ID的end_user_id字段
错误原因
你写的筛选条件manager__manager__end_user_id里,第二个manager是错误的——MissForm关联的是Manager,而Manager关联的是Employee,所以这里应该替换成Manager模型中关联Employee的外键字段名,而不是重复写manager。
修正后的代码
假设Manager模型里关联Employee的外键字段叫employee,修正后的代码如下:
login_user_id = request.user.username.upper() forms = MissForm.objects.filter(status_flag=2, manager__employee__end_user_id=login_user_id)
注意事项
如果Manager里关联Employee的外键字段不是employee(比如叫related_employee),你需要把代码里的employee替换成实际的字段名称,保证关联路径和模型定义一致。
内容的提问来源于stack exchange,提问作者Andrii Shyrokov
相关产品推荐
相关产品推荐

