python
type_error
ai_generated
true
无效查询:必须是一个 User 实例
django.db.models.query_utils.InvalidQuery: Cannot query "my_value": Must be a User instance.
ID: python/django-query-set-evaluation-error
80%修复率
82%置信度
0证据数
2025-02-05首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 3.2 | active | — | — | — |
| 4.0 | active | — | — | — |
根因分析
Django ORM 查询要求外键字段使用模型实例,但传入了其他类型
English
查询时使用了错误的数据类型,而不是模型实例
解决方案
-
100% 成功率 使用模型实例进行查询
user = User.objects.get(id=1); MyModel.objects.filter(user=user)
-
95% 成功率 使用外键字段名加双下划线
MyModel.objects.filter(user_id=1)
无效尝试
常见但无效的做法:
-
使用原始 SQL 查询
70% 失败
绕过 ORM,可能导致安全问题
-
将值转换为字符串
80% 失败
ORM 仍然无法识别